如何使用OpenCV更改图像的对比度?

Chr*_*org 2 opencv image-processing emgucv

我想看一下某个蒙版区域中图像的对比度,如果太大则会减少它.是否有内置功能可以帮助我解决这个问题?如果没有,我应该考虑什么样的算法?我假设我会查看/更改像素的值以使它们更接近平均值,并且平均距离平均值可能是初始对比度的一个很好的衡量标准?

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

Alc*_*sta 5

如果您使用的是OpenCV,则无需直接从图像中提取直方图.

如果要通过直方图均衡来调整图像的对比度,OpenCV具有equalizeHist功能.

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

newValue = 255 * (oldValue - minValue)/(maxValue - minValue)
Run Code Online (Sandbox Code Playgroud)

我假设每个像素采用0-255范围内的值.此外,minValue和maxValue对应于输入图像中的最小和最大灰度值.