个人资料,仅供学习使用
学习课程:OpenCV4 C++ 快速入门视频30讲——贾志刚
07 滚动条操作2.0 - 调整亮度与对比度
opencv知识点:
- 创建滚动条 - createTrackbar()
- 处理滚动条事件的函数 - TrackbarCallback()
- 亮度与对比度的概念
- 巧用图片融合 - addWeighted()
本课所解决的问题:
- 如何利用createTrackbar的userdata?
- 调整亮度/对比度的内涵是什么?
- 如何利用图片融合addWeighted调整亮度/对比度?
1.参数userdata
对上一次课代码的改进,利用上userdata
这个参数
合理运用第6个参数userdata,进行参数传递,从而调整亮度,以降低亮度为例。
static void on_track(int light, void* userdata) {
Mat image = *((Mat*)(userdata));
Mat dst = Mat::zeros(image.size(), image.type());
Mat m = Mat::zeros(image.size(), image.type());
m = Scalar(light, light, light);
//add(image, m, dst);
subtract(image, m, dst);
imshow("亮度调整", dst);
}
void QuickDemo::tracking_bar_demo(Mat& image) {
namedWindow("亮度调整", WINDOW_AUTOSIZE);
int lightness = 50