独家|OpenCV 1.6 改变图像的对比度和亮度!
翻译:陈之炎 校对:吴金迪
本文约2500字,建议阅读5分钟
本文为大家介绍了OpenCV改变图像的对比度和亮度。
目标
访问像素值;
用零初始化矩阵;
学习CV :: saturate_cast的作用及其有用的原因;
学习有关像素变换的很酷的知识;
提高图像亮度的实例。
理论
图像处理
常用的图像处理操作是一个函数,它将一个或多个图像作为输入并生成输出图像。
图像变可被视为:
点运算符(像素变换);
邻近(基于区域的)运算符。
像素变换
在图像处理中, 每个输出像素的值仅取决于相应的输入像素值(可能还包括一些全局收集的信息或参数);
此类操作实例包括亮度调整、对比度调整以及颜色的校正和转换。
亮度和对比度调整
参数α > 0和β通常称为增益参数和偏置参数,通过这两个参数分别来控制对比度和亮度。
F ( X )为源图像的像素,G ( X )为输出图像的像素。可以方便地写出以下表达式:
其中i和j表示位于第i行,第j列的像素。
代码
C ++
https://github.com/opencv/opencv/blob/master/samples/java/tutorial_code/ImgProc/changing_contrast_brightness_image/BasicLinearTransformsDemo.java
https://github.com/opencv/opencv/blob/master/samples/python/tutorial_code/imgProc/changing_contrast_brightness_image/BasicLinearTransforms.py)
原文可下载源代码(地址在文末)
下面的代码执行g(i,j)=α⋅f(i,j)+β操作
代码详解
C ++
初始像素值为零;
与原始图像相同的尺寸和数据类型。
我们现在要求用户输入α和β值:
为了执行g(i,j)=α⋅f(i,j)+β操作,我们必须访问图像的每个像素。由于是对BGR图像进行操作,所以每个像素包含(B,G和R)三个值,我们必须分别访问它们。具体代码如下:
我们利用 image.at<Vec3b>(y,x)[c]来访问图像的各个像素,其中ÿ是行号, X是列号,C是B,G或R(0,1或2);
由于α⋅p(i,j)+β 操作的值可能溢出或为非整数(如α是浮点数),我们用CV :: saturate_cast来确保该值的有效性;
最后,我们用以下方式创建窗口并显示图像。
结果
我们不运行代码,设置α = 2.2和β = 50。
实例
图像亮度和对比度调整
伽瑪校正
伽瑪校正利用输入值和输出映射值之间的非线性变换,校正图像的亮度:
纠正曝光不足的图像
图: Visem的作品 [CC BY-SA 3.0],来源:维基共享资源
代码
C ++
更多资源
图形渲染中的伽玛校正
CRT监视器的伽玛校正和图像显示
数字曝光技术
https://docs.opencv.org/4.5.2/d3/dc1/tutorial_basic_linear_transform.html
下一小节:1.7 离散傅里叶变换
独家|OpenCV 1.2 如何用OpenCV扫描图像、查找表和测量时间(附链接)
独家|OpenCV 1.4 对图像的操作
译者简介
陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步
翻译组招募信息
工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。
你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。
其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。
点击文末“阅读原文”加入数据派团队~
转载须知
如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。
发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。
点击“阅读原文”拥抱组织