0
点赞
收藏
分享

微信扫一扫

Qt+OpenCV联合开发(六)--调整图像亮度

夹胡碰 2022-01-27 阅读 74
qtopencv

一、简述createTrackbar函数

1、作用:创建可调节滚动条,实现图像的亮度调节

2、c++原型:

 参数一:轨迹条名字

 参数二:窗口名字, 即对应namedWindow()创建窗口时填的某一个窗口名

 参数三:一个指向整型的指针,表示滑块初始位置

 参数四:表示滑块达到最大位置的值(滑块最小的位置的值始终为0)

 参数五:指向回调函数,默认值为0;每次滑块位置改变时,这个函数都会进行回调;并且这个函数的原型必须为void XXX(int,void*);其中第一个参数是轨迹条的位置,第二个参数是用户数据(就是下面的参数六);如果回调是NULL指针,表示没有回调函数的调用,仅第三个参数value有变化。

 参数六:用户传给回调函数的数据值,用来处理轨迹条事件,默认值为0;如果使用的第三个参数value实参是全局变量的话,完全可以不去管这个参数

二、代码

Mat src,dst,m;
int lightValue = 52;//定义初始的亮度
//滑动条回调函数,要在sliderBar前先定义
static void on_track(int ,void*)
{
    m = Scalar(lightValue,lightValue,lightValue);//创建调整亮度的数值
    add(src,m,dst);//定义亮度变化为加
    imshow("adjust light",dst);//显示调整亮度之后的图片
}
void test1::sliderBar(Mat &image)
{
    namedWindow("adjust light",WINDOW_FREERATIO);

    dst = Mat::zeros(image.size(),image.type());//图片的初始化创建一个和image大小相等,种类相同的图像
    m = Mat::zeros(image.size(),image.type());
    src = image;
    int max_v=100;//最大值
    createTrackbar("Trackbar","adjust light",&lightValue,max_v,on_track);//调用on_track函数实现功能
    on_track(30,0);
}

三、实现效果

input窗口为原始图片

 

举报

相关推荐

0 条评论