【Emgu CV教程】3.7、色彩处理之ConvertTo()函数改变图像的亮度和对比度

本文详细解释了亮度和对比度在图像处理中的概念,通过实例展示了如何使用EmguCV中的ConvertTo()函数调整图像的亮度和对比度,并强调了练习对理解和感受两者差异的重要性。
摘要由CSDN通过智能技术生成

先画重点:

  1. 亮度是指图像的整体明亮程度。增加亮度会使图像整体变得更加明亮,而减少亮度则会使图像变暗。
  2. 对比度是指图像中不同区域之间亮度差异的程度。它衡量了图像中最亮和最暗区域之间的差异。对比度高的图像明暗差异大,而对比度低就是明暗差异不明显。对比度可以通过调整图像中像素的亮度值来改变。增加亮度差异会增加对比度,而减少亮度差异则会降低对比度。

注意啊,亮度是亮度、对比度是对比度。图像整理亮度大,不代表对比度大;对比度大的图像,也有可能整体看上去有些暗。基本上网上的教程都没有举例子说明,我就不一样了,先看一副名画:

不同亮度、对比度的四种效果如下: 

这四张图一对比,是不是马上秒杀其它作者的讲解。亮度好理解,像素值越接近255,就是越亮。一张纯白的图片,是最亮的,但是对比度是最低的,因为整副图片没有明暗差别。 对比度就是亮的区域和暗的区域差别有多大。您看上面那个低亮度、高对比度的图片。虽然整体都很黑,但是原图亮的部分,也就是桌子上的地球仪那块,是不是比其它区域还是要亮一些。低亮度低对比度那张图,就是整体上都很亮,但是最亮的部分比最暗的部分没差多少。

上面四种效果是我用PhotoShop调出来的,Emgu CV中也有对应的函数,就是ConvertTo()函数,之前在第十一篇文章里面介绍过,是这样说的:

这个函数除了可以改变图像深度类型以外,还可以改变图像的亮度和对比度。它是利用了这个公式:

        g(x)=α.f(x)+β

这就是一种线性转换关系。f(x) 是源图像像素值;g(x) 是目标图像像素值;参数α代表增益,控制对比度;β代表偏置参数,控制亮度。分别取不同的值,得出效果如下图:

代码很简单,用法如下:

Mat dstMat = new Mat(); // 目标图像
Mat tempMat = srcMat.Clone(); // 原图深拷贝
tempMat.ConvertTo(dstMat, tempMat.Depth, a, b);

ConvertTo()函数改变图像亮度和对比度时,如果α = 1, β = 0,这时候输出的结果和原图是相同的。读者们,还是要多多练习才能体会出亮度、对比度的差异,这篇文章就讲到这里。

原创不易,请勿抄袭。共同进步,相互学习。 

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值