![]() |
OpenCV 4.12.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 应用直方图均衡化
正如很容易看到的,唯一的参数是原始图像和输出(均衡化)图像。
显示两张图像(原始图像和均衡化后的图像)
等待用户退出程序
顺便说一句,它有这样的直方图
请注意,像素聚集在直方图的中心附近。
这张图像肯定具有更高的对比度。像这样检查一下它的新直方图
请注意,像素的数量如何更均匀地分布在强度范围内。