OpenCV3 之 图像对比度与亮度值的调整
发布日期:2021-07-01 03:59:43
浏览次数:2
分类:技术文章
本文共 1069 字,大约阅读时间需要 3 分钟。
1. 理论基础
博主个人理解,对图像的处理可以看成一个函数(原图图像)经过处理(亮度、对比度的调整、颜色校正和变换、图片的压缩等等)变换为另一个函数(处理后的图像)的一个过程。
对于亮度与对比度,公式如下:
g ( x ) = a ∗ f ( x ) + b g(x)=a{*} f(x)+b g(x)=a∗f(x)+b- 参数 f ( x ) f(x) f(x)表示原图像像素
- 参数 g ( x ) g(x) g(x)表示输出图像像素
- 参数 a a a( a a a>0),称为增益(gain),常被用来控制图像对比度
- 参数 b b b,称为偏置(bias),常被用来控制图像亮度
如果用 i i i和 j j j来表示像素的行和列,则上述公式变为:
g ( i , j ) = a ∗ f ( i , j ) + b g(i, j)=a{*} f(i, j)+b g(i,j)=a∗f(i,j)+b2. 调节过程
调节图像的亮度和对比度,即对图像的每一个像素的三个通道值都执行一次 g ( x ) = a ∗ f ( x ) + b g(x)=a{*} f(x)+b g(x)=a∗f(x)+b。
#include#include using namespace std;using namespace cv;int main() { Mat g_srcImage, g_dstImage; g_srcImage = imread("1.jpg"); g_dstImage = Mat::zeros(g_srcImage.size(), g_srcImage.type()); 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 (y, x)[c] = saturate_cast (10*(g_srcImage.at (y, x)[c]) + 0); } } } imshow("亮度对比度调节图", g_dstImage); waitKey(0); return 0;}
参考书籍《OpenCV3编程入门》
转载地址:https://miracle.blog.csdn.net/article/details/100578045 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月14日 11时18分36秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
字节流复制图片
2019-05-01
其他数字摘要算法实现
2019-05-01
私钥加密私钥解密
2019-05-01
锁的释放流程-ReentrantLock.unlock
2019-05-01
Java判断字符串是否为数字(浮点类型也包括)
2019-05-01
Err:11 https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64 Packages 404 No
2019-05-01
ubuntu opencv-python 安装很慢问题
2019-05-01
MySQL5.7版本修改了my.ini配置文件后mysql服务无法启动问题
2019-05-01
【大数据开发】Java基础 -总结21-Hashmap和HashTable的区别
2019-05-01
Azkaban体系结构
2019-05-01
机器学习之重头戏-特征预处理
2019-05-01
synchronized底层实现及锁的升级、降级
2019-05-01
PermGen space-永久区内存溢出
2019-05-01
Maven继承和聚合
2019-05-01
Apache Kafka:优化部署的 10 种最佳实践
2019-05-01
Leetcode 35. 搜索插入位置 c#
2019-05-01
[9] JMeter-常用函数的使用
2019-05-01