赞
踩
进行了直方图的均衡化和限制对比度的直方图均衡化。
代码如下:
import cv2 as cv import matplotlib.pyplot as plt # 直方图均衡化 def img_histogram_balance(img): img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) # cv.equalizeHist(src) 用于实现图像的直方图均衡化,其输入是灰度图像,输出的是直方图均衡化的图像。 result = cv.equalizeHist(img_gray) plt.title("Origin") plt.subplot(121) plt.imshow(img_gray) # 绘制原始直方图 plt.subplot(122) plt.hist(img_gray.ravel(), 256) plt.show() plt.title("equalize") plt.subplot(121) plt.imshow(result) # 绘制均衡化直方图 plt.subplot(122) plt.hist(result.ravel(), 256) plt.show() # 限制对比度的直方图均衡化 def limit_histogram_balance(img): img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) ''' cv.createCLAHE(clipLimit,tileGridSize) 限制对比度的自适应直方图均衡化 clipLimit:颜色对比度的阈值 tileGridSize:均衡化的网格大小,即在多少网格下进行直方图的均衡化操作,常用大小是8×8的矩阵。 ''' clahe = cv.createCLAHE(clipLimit=30, tileGridSize=(8, 8)) result = clahe.apply(img_gray) plt.title("limit_equalize_img") plt.subplot(121) plt.imshow(result) plt.subplot(122) plt.hist(result.ravel(), 256) plt.show() if __name__ == '__main__': img = cv.imread("./image/fengjing.jpg") img_histogram_balance(img) limit_histogram_balance(img)
运行结果:
上述进行了直方图的均衡化和限制对比度的直方图均衡化。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。