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

完事儿。

posted @ 2021-12-16 17:15  想想就很离谱  阅读(156)  评论(0编辑  收藏  举报