当前位置: 首页> 财经> 股票 > opencv学习:图像直方图均衡化与对比度受限的自适应直方图均衡化及实验代码

opencv学习:图像直方图均衡化与对比度受限的自适应直方图均衡化及实验代码

时间:2025/8/24 7:26:28来源:https://blog.csdn.net/mohanyelong/article/details/142304179 浏览次数:0次

直方图均衡化是一种图像处理技术,用于改善图像的全局对比度,通过均匀分布图像的灰度级来实现。CLAHE是一种改进的直方图均衡化技术,它将图像分割成多个小块,对每个小块分别进行直方图均衡化,然后合并结果,以避免在大范围均衡化中可能出现的噪声放大问题。

实验步骤

  1. 使用OpenCV读取图像文件“woman.png”为灰度图像。
    phone=cv2.imread("woman.png",cv2.IMREAD_GRAYSCALE)
  2. 计算并显示原始图像的直方图。
    plt.hist(phone.ravel(),bins=256)
    plt.show()
  3. 应用直方图均衡化,计算并显示均衡化后的图像的直方图。
    phone_equalize=cv2.equalizeHist(phone)
    plt.hist(phone_equalize.ravel(),bins=256)
    plt.show()
  4. 将原始图像和均衡化后的图像水平堆叠,显示在同一个窗口中。
    res=np.hstack((phone,phone_equalize))
    cv2.imshow("phone_equalize",res)
  5. 创建CLAHE对象,设置clipLimit和tileGridSize参数。
    clahe=cv2.createCLAHE(clipLimit=1,tileGridSize=(16,16))
  6. 应用CLAHE处理原始图像。
    phone_clahe=clahe.apply(phone)
  7. 将原始图像、直方图均衡化后的图像和CLAHE处理后的图像水平堆叠,显示在同一个窗口中。
    res=np.hstack((phone,phone_equalize,phone_clahe))
    cv2.imshow("phone_equalize",res)

实验结果

完整代码

phone=cv2.imread("woman.png",cv2.IMREAD_GRAYSCALE)
plt.hist(phone.ravel(),bins=256)
plt.show()phone_equalize=cv2.equalizeHist(phone)
plt.hist(phone_equalize.ravel(),bins=256)
plt.show()res=np.hstack((phone,phone_equalize))
cv2.imshow("phone_equalize",res)
cv2.waitKey(0)clahe=cv2.createCLAHE(clipLimit=1,tileGridSize=(16,16))
phone_clahe=clahe.apply(phone)
res=np.hstack((phone,phone_equalize,phone_clahe))
cv2.imshow("phone_equalize",res)
cv2.waitKey(0)
plt.show()

关键字:opencv学习:图像直方图均衡化与对比度受限的自适应直方图均衡化及实验代码

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: