? ? ? ? 先画重点:
? ? ? ? 注意啊,亮度是亮度、对比度是对比度。图像整理亮度大,不代表对比度大;对比度大的图像,也有可能整体看上去有些暗。基本上网上的教程都没有举例子说明,我就不一样了,先看一副名画:
? ? ? ? 不同亮度、对比度的四种效果如下:?
? ? ? ? 这四张图一对比,是不是马上秒杀其它作者的讲解。亮度好理解,像素值越接近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,这时候输出的结果和原图是相同的。读者们,还是要多多练习才能体会出亮度、对比度的差异,这篇文章就讲到这里。
原创不易,请勿抄袭。共同进步,相互学习。?