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

直方图均衡化是一种图像处理技术,用于改善图像的全局对比度,通过均匀分布图像的灰度级来实现。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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值