OpenCV 4.11.0
开源计算机视觉库
|
原作者 | Ana Huamán |
兼容性 | OpenCV >= 3.0 |
在本教程中,您将学习
为了实现均衡化效果,重新映射应该使用*累积分布函数 (CDF)*(更多细节,请参考*学习 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 应用直方图均衡化
很容易看出,唯一的参数是原始图像和输出(均衡化)图像。
显示两张图像(原始图像和均衡化图像)
等待用户退出程序
顺便说一句,它的直方图是这样的
注意像素集中在直方图的中心附近。
这张图像的对比度肯定更高。像这样查看它的新直方图
注意像素数量如何在强度范围内更均匀地分布。