目录
准备工作
需要先下载Matplotlib库
一、灰度变换
通过绘制其直方图来分析图片chest.tif显示效果不好的原因,然后对图片chest.tif进行线性灰度变换,达到你认为比较好的效果。
在OpenCV中可以使用calcHist() 函数计算直方图,计算完成之后采用 OpenCV 中的绘图函数来画出直方图
设计灰度变换方程
使用Matplotlib显示绘制的直方图
灰度变换前后的直方图如下:
通过直方图可知:原始直方图集中在最左侧的低灰度级区域,导致图片偏暗,调整线性变换,将图像的灰度级拉伸到更广的范围内,使得图像中原本较暗的部分变得更明亮。
二、直方图均衡化
分别显示图片chest.tif和moon.tif的直方图,并对其进行均衡化。将得到的结果图片和原图片比较,效果如何?为什么对不同的图片进行均衡化会有如此差别?
Python 调用 OpenCV中的 cv2.equalizeHist()函数实现直方图均衡化处理,并 且为全局直方图均衡化。其函数原型如下所示,输出的 dst 图像与输入图像 src 具有相同的大小和类型。
dst = cv2.equalizeHist(src)
src 表示输入图像,即原图像。
dst 表示目标图像,直方图均值化处理的结果。
图像内容差异:图像的内容决定了其亮度分布的特征,不同的图像可能具有不同的亮度范围和灰度分布情况。因此,对于不同的图像,直方图均衡化可能会产生不同的效果。
对比度需求不同: 一些图像可能需要增强对比度,使得图像中的细节更加清晰和突出,而另一些图像可能不需要或者不能承受过多的对比度增强。因此,在应用直方图均衡化时,需要根据图像的具体特征和需求来选择合适的参数和方法。
局部亮度变化: 图像中可能存在局部亮度变化较大的情况,直方图均衡化可能会导致一些局部细节丢失或者过曝。因此,在应用直方图均衡化时,需要考虑到图像中的局部特征,并可能需要采用局部对比度增强等技术来进行局部调整。