本文主要是介绍opencv 调节图片亮度和对比度(注意头文件顺序),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先,我要说的是,头文件的包含是有顺序的,不然会出现错误
#include<opencv2\opencv.hpp>
#include<iostream>
这样写没错,但是
#include<iostream>
#include<opencv2\opencv.hpp>
在我的文件里就会出现错误了。
所以大家编程一定要注意头文件的顺序
#include<opencv2\opencv.hpp>
#include<iostream>#define New_Window "效果图"using namespace std;
using namespace cv;//定义全局变量
int a, b;//表示亮度和对比度
Mat c, d;//原图像和目标图像void Feed_Back(int, void*) {for (int i = 0; i < c.rows; i++) {for (int j = 0; j < c.cols; j++) {for (int k = 0; k < 3; k++) {d.at<Vec3b>(i, j)[k] =saturate_cast<uchar>((a*0.01)*c.at<Vec3b>(i, j)[k] + b);}}}imshow(New_Window, d);//imwrite("F:\\效果图.jpg", d);
}int main() {namedWindow("原图", CV_WINDOW_NORMAL);namedWindow(New_Window, CV_WINDOW_NORMAL);try {c = imread("F:\\cool.jpeg", 4);}catch (Exception& e){const char* err_msg = e.what();cout << "exception caught: " << err_msg << endl;}imshow("原图", c);d = Mat::zeros(c.size(), c.type());//定义亮度和色彩的初始值a = 80;b = 80;createTrackbar("对比度:", New_Window, &a, 300, Feed_Back);createTrackbar("亮度:", New_Window, &b, 200, Feed_Back);//创建两个滑动条Feed_Back(a, 0);Feed_Back(b, 0);//调用回调函数waitKey(0);return 0;}
看看结果,让常守朱小姐姐测测你的心理数值吧
这篇关于opencv 调节图片亮度和对比度(注意头文件顺序)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!