2011-12-30 78 views
2

我想查看某个遮罩区域中图像的对比度,如果它太大,请将其减小。有内置函数可以帮助我吗?如果不是,我应该看什么样的算法?我假设我会考虑/改变像素的值以使它们更接近平均值,也许距平均值的平均距离是衡量初始对比度的好方法?如何使用OpenCV更改图像的对比度?

如果相关,我正在使用EmguCV。

+0

谢谢你们 - 看起来我可能会想要采取相当边缘重的直方图并使它们相等。 – 2011-12-30 20:27:52

回答

2

对比度是一个位图像处理的不精确的术语 - 但通常你会通过拉伸/压缩histogram

1

就像马丁说,你要分别操纵灰色的流通的颜色来修改图像做值。通用解决方案是应用于直方图的曲线,您可以在The Gimp中播放这些曲线。有关如何在OpenCV中应用基本图像处理和直方图操作功能的示例,您可以查看下面的代码:mango

5

如果您使用OpenCV,则不需要直接从图像中提取直方图。

如果要通过直方图均衡调整图像的对比度,OpenCV具有equalizeHist函数。

但请注意,当您调整图像的对比度时,直方图均衡并不总是您想要的。如果您想进行对比度拉伸(一种非常简单而有效的算法),则只需找到图像的最小和最大灰度级(像素值),并对每个图像像素应用以下点操作:

​​

我在这里假设每个像素的取值范围是0-255。此外,minValue和maxValue对应于输入图像中的最小和最大灰度值。

相关问题