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