#彩色 直方图均衡化
import cv2
import numpy as np
img = cv2.imread('image0.jpg',1)
cv2.imshow('src',img)
(b,g,r) = cv2.split(img)#通道分解 得到的是各个通道的灰度值
bH = cv2.equalizeHist(b)
gH = cv2.equalizeHist(g)
rH = cv2.equalizeHist(r)
result = cv2.merge((bH,gH,rH))# 通道合成
cv2.imshow('dst',result)
#cv2.imshow("sss",bH) 这样是灰色,为什么呢
zeros = np.zeros(img.shape[:2], dtype = "uint8") #split分离出来的是单通道,所以是灰度
cv2.imshow("Blue", cv2.merge([b, zeros, zeros])) #这里加上两个空的通道,得到一幅蓝色的图
cv2.waitKey(0)
#灰度 直方图均衡化
import cv2
import numpy as np
img = cv2.imread('image0.jpg',1)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #转为灰度
cv2.imshow('src',gray) #原图
dst = cv2.equalizeHist(gray) #均衡化图片
cv2.imshow('dst',dst) #转化后
cv2.waitKey(0)
#YUV 直方图均衡化
import cv2
import numpy as np
img = cv2.imread('image0.jpg',1)
imgYUV = cv2.cvtColor(img,cv2.COLOR_BGR2YCrCb) #转化为yuv
cv2.imshow('src',img)
channelYUV = cv2.split(imgYUV) #分离为yuv 同样是三维的
channelYUV[0] = cv2.equalizeHist(channelYUV[0]) #获取第一通道 均衡化
channels = cv2.merge(channelYUV) #合成,与split相对
result = cv2.cvtColor(channels,cv2.COLOR_YCrCb2BGR) #再转化为
cv2.imshow('dst',result)
cv2.waitKey(0)