您的位置:首页 > 运维架构

opencv 调节图片亮度和对比度(注意头文件顺序)

2017-08-01 10:14 281 查看
首先,我要说的是,头文件的包含是有顺序的,不然会出现错误

#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;

}


看看结果,让常守朱小姐姐测测你的心理数值吧



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息