import cv2
import matplotlib.pyplot as plt
o=cv2.imread('C:/Users/xpp/Desktop/Lena.png',1)#原始图像
cv2.imshow("original",o)
histb=cv2.calcHist([o],[0],None,[256],[0,255])#绘制B分量直方图
histg=cv2.calcHist([o],[1],None,[256],[0,255])#绘制G分量直方图
histr=cv2.calcHist([o],[2],None,[256],[0,255])#绘制R分量直方图
(b,g,r)=cv2.split(o)#拆分红、绿、蓝3个颜色通道
bH=cv2.equalizeHist(b)
gH=cv2.equalizeHist(g)
rH=cv2.equalizeHist(r)
result=cv2.merge((bH,gH,rH))#合并红、绿、蓝3个颜色通道
cv2.imshow("result",result)
Hb=cv2.calcHist([result],[0],None,[256],[0,255])#绘制B分量直方图均衡化
Hg=cv2.calcHist([result],[1],None,[256],[0,255])#绘制G分量直方图均衡化
Hr=cv2.calcHist([result],[2],None,[256],[0,255])#绘制R分量直方图均衡化
plt.figure("原始图像直方图")
plt.plot(histb,color='b')
plt.plot(histg,color='g')
plt.plot(histr,color='r')
plt.figure("均衡化结果直方图")
plt.plot(Hb,color='b')
plt.plot(Hg,color='g')
plt.plot(Hr,color='r')
cv2.waitKey()
cv2.destroyAllWindows()
算法:颜色直方图均衡化是在许多图像检索系统中被广泛采用的颜色特征,会出现色彩失真。
b, g, r=cv2.split(img)
img=cv2.merge([b, g, r])
书籍:《数字图像处理与机器视觉——Visual C++与Matlab实现》
本文分享自 图像处理与模式识别研究所 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!