700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > core组件进阶(Opencv3编程入门 第五章) 第四节 图像对比度亮度调整

core组件进阶(Opencv3编程入门 第五章) 第四节 图像对比度亮度调整

时间:2024-04-09 05:36:02

相关推荐

core组件进阶(Opencv3编程入门 第五章) 第四节 图像对比度亮度调整

core组件进阶(Opencv3编程入门 第五章) 第四节 图像对比度亮度调整

#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <iostream>using namespace cv;using namespace std;//全局函数声明static void on_ContrastAndBright(int, void*);static void ShowHelpText();//全局变量声明int g_nContrastValue;//对比度值int g_nBrightValue;//亮度值Mat g_srcImage, g_dstImage;int main(){//读取输入图像g_srcImage = imread("C:\\Users\\HAO SU\\Pictures\\1.jpg");if(!g_srcImage.data){printf("读取图片错误");return false;}g_dstImage = Mat::zeros(g_srcImage.size(), g_srcImage.type());//设定对比度和亮度的对比g_nContrastValue = 80;g_nBrightValue = 80;//创建窗口namedWindow("window", WINDOW_NORMAL);//创建轨迹条createTrackbar("对比度:", "window", &g_nContrastValue, 300, on_ContrastAndBright);createTrackbar("亮度:", "window", &g_nBrightValue, 200, on_ContrastAndBright);//进行回调函数初始化on_ContrastAndBright(g_nContrastValue, 0);on_ContrastAndBright(g_nBrightValue, 0);while(char(waitKey(1)) != 'q') {}return 0;}void on_ContrastAndBright(int, void*){namedWindow("origin", WINDOW_NORMAL);//像素遍历for(int y = 0; y < g_srcImage.rows; y++){for(int x = 0; x < g_srcImage.cols; x++){for(int c = 0; c < 3; c++){g_dstImage.at<Vec3b>(y, x)[c] =saturate_cast<uchar>( (g_nContrastValue*0.01)*(g_srcImage.at<Vec3b>(y, x)[c]) + g_nBrightValue);//saturate_cast<uchar>模板用于溢出保护。对于小于0的值赋值为0;大于255的值赋值为255.}}}imshow("origin", g_srcImage);imshow("window", g_dstImage);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。