我想看看某个蒙版区域中图像的对比度,如果太大则会减少它。是否有内置功能可以帮助我解决这个问题?如果没有,我应该考虑什么样的算法?我假设我会查看/更改像素值以使它们更接近平均值,也许平均距离平均值可以很好地衡量初始对比度?
如果相关,我正在使用EmguCV。
答案 0 :(得分:5)
如果您使用的是OpenCV,则无需直接从图像中提取直方图。
如果要通过直方图均衡来调整图像的对比度,OpenCV具有equalizeHist功能。
但是请注意,调整图像的对比度时,直方图均衡并不总是您想要的。如果你想进行对比度拉伸(一种非常简单但有效的算法),你只需要找到图像的最小和最大灰度(像素值),并对每个图像像素应用以下点操作:
newValue = 255 * (oldValue - minValue)/(maxValue - minValue)
我假设每个像素的取值范围为0-255。此外,minValue和maxValue对应于输入图像中的最小和最大灰度值。
答案 1 :(得分:2)
对比度在图像处理中有点不精确 - 但通常你会通过拉伸/压缩histogram
来做到这一点答案 2 :(得分:1)