opencv学习笔记(十六)——图像对比度和亮度值
来源:互联网 发布:淘宝店铺综合评分497 编辑:程序博客网 时间:2024/05/22 18:40
一、理论分析
对于图像亮度和对比度的调整主要是加上或者乘上一个常数,理论公式如下:
g(x,y)<c> = a*f(x,y)<c>+b
- f(x,y)< c >代表源图像第x行,第y列像素点第c通道的值
- g(x,y)< c>代表输出图像第x行,第y列像素点第c通道的值
- a(a>0)通常称为增益(放大倍数),用来控制图像的对比(为了观察结果,一般设置为0.0到3.0之间)
- b通常被称为偏置,用来控制图像的亮度
例程:
#include<opencv2/opencv.hpp>static void on_ContrastAndBright(int, void*);int g_nContrastValue;int g_nBrightValue;cv::Mat g_srcImage, g_dstImage;int main(){ g_srcImage = cv::imread("亚丝娜.jpg"); if (!g_srcImage.data) { printf("源图像加载失败!"); return 0; } g_dstImage = cv::Mat::zeros(g_srcImage.size(), g_srcImage.type()); g_nContrastValue = 80; g_nBrightValue = 80; cv::namedWindow("【效果图】", 1); cv::createTrackbar("对比度:", "【效果图】", &g_nContrastValue, 300, on_ContrastAndBright); cv::createTrackbar("亮 度:", "【效果图】", &g_nBrightValue, 200, on_ContrastAndBright); on_ContrastAndBright(g_nContrastValue, 0); on_ContrastAndBright(g_nBrightValue, 0); while (char(cv::waitKey(1)) != 'q') {} return 1;}static void on_ContrastAndBright(int, void*){ cv::namedWindow("【原始图】"); 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<cv::Vec3b>(y, x)[c] = cv::saturate_cast<uchar>((g_nBrightValue*0.01)*(g_srcImage.at<cv::Vec3b>(y, x)[c]) + g_nContrastValue); //saturate_cast<uchar> 防止数据溢出,强制装换成uchar类型 } } } imshow("【原始图】", g_srcImage); imshow("【效果图】", g_dstImage);}
0 0
- opencv学习笔记(十六)——图像对比度和亮度值
- opencv学习笔记9 改变图像的对比度和亮度
- opencv学习笔记-4、调整图像亮度和对比度
- openCV学习笔记 (六) : 改变图像的对比度和亮度
- 学习OpenCV(四) 改变图像的对比度和亮度——像素变换
- 学习OpenCV范例(五)——改变图像的对比度和亮度
- opencv学习(十)之调节图像亮度和对比度
- OpenCV学习——图像亮度、对比度调节
- opencv学习(4)——图像亮度、对比度调整
- OpenCV学习笔记(四)创建Trackbar & 图像对比度、亮度值调整
- OpenCV学习笔记(14)创建Trackbar & 图像对比度、亮度值调整
- opencv学习笔记之调整图像的亮度与对比度
- 学习opencv 一幅图像的对比度和亮度调节
- 学习opencv(4)---改变图像的对比度和亮度
- OpenCV学习:改变图像的对比度和亮度
- OpenCV学习第七篇:调整图像亮度和对比度
- OpenCV学习:创建Trackbar & 图像对比度、亮度值调整
- 【学习OpenCV】图像的亮度/对比度调整
- android照相、相册获取图片剪裁部分手机异常的解决方法
- linux useful commands
- HTML页面加载和解析流程
- iOS自定义转场动画(1)——自定义Push转场动画
- 解决"mex setup或mbuild setup找不到编译器"问题
- opencv学习笔记(十六)——图像对比度和亮度值
- 标识符及其命名规范
- 6.5 光照的每顶点计算与每片元计算
- HDU 4300 Clairewd’s message (kmp | exkmp)
- java final关键字
- 欢迎使用CSDN-markdown编辑器
- Java开发中获得非Web项目的当前项目路径
- 数字谐音记忆编码连连看网页应用
- Style