1. 程式人生 > 其它 >opencv 建立視窗滑動條

opencv 建立視窗滑動條

前言

我們有時候需要對 opencv 某個函式進行動態調參,這時候就要使用到 opencv 提供的滑動條工具啦

該滑動條滑動時可以動態的改變我們的引數,對影象處理時有非常好的輔助效果

該滑動條是由 createTrackbar() 函式建立的。

接下來,上程式碼。

完整程式碼

#include <iostream>
#include <opencv2/opencv.hpp>

cv::Mat src, dst;
const char *window_name = "滑塊調整影象亮度";// 視窗名字
int light_value_cur = 50;		// 初始亮度值
int light_value_max = 255;		// 亮度最大值

// 滑塊回撥函式
static void onTrack(int pos, void* usrdata)
{
	cv::subtract(*((cv::Mat*)usrdata), cv::Scalar(pos, pos, pos), dst);
	cv::imshow(window_name, dst);
}

int main()
{
	src = cv::imread("./image/4.jpg");
	if (src.empty()) {
		std::cout << "imread image fail!" << std::endl;
		return -1;
	}

	cv::namedWindow(window_name, cv::WINDOW_AUTOSIZE);

	// 建立滑鼠滑塊 範圍[0, light_value_max]
	cv::createTrackbar(cv::String("亮度:"), window_name, &light_value_cur, light_value_max, onTrack, &src);
	onTrack(50, &src); // 手動呼叫,方便影象根據值進行初始化

	cv::waitKey(0);
	cv::destroyAllWindows();

	return 0;
}

除錯結果:



_End

完事兒。

本文來自部落格園,作者:拾荒荒,轉載請註明原文連結:https://www.cnblogs.com/lvvou/p/15699129.html