OpenCV 4.10.0
开源计算机视觉库
|
原始作者 | Ana Huamán |
兼容性 | OpenCV >= 3.0 |
在本教程中,您将学习
为了实现均衡效果,重新映射应该是累积分布函数 (cdf)(更多细节,请参考Learning OpenCV)。对于直方图\(H(i)\),它的累积分布\(H^{'}(i)\) 为
\[H^{'}(i) = \sum_{0 \le j < i} H(j)\]
为了将其用作重新映射函数,我们必须对\(H^{'}(i)\) 进行归一化,使其最大值为 255(或图像强度最大值)。从上面的示例中,累积函数为
最后,我们使用一个简单的重新映射过程来获得均衡图像的强度值
\[equalized( x, y ) = H^{'}( src(x,y) )\]
加载源图像
将其转换为灰度图像
使用函数 cv::equalizeHist 应用直方图均衡化
如您所见,唯一的参数是原始图像和输出(均衡化)图像。
显示两个图像(原始图像和均衡化图像)
等待用户退出程序
顺便说一下,它的直方图是这样的
注意,像素集中在直方图的中心附近。
这张图像的对比度肯定更高。看一下它新的直方图
注意,像素数量在强度范围内分布得更多。