1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| import cv2 import numpy as np #用np代替引入的numpy from matplotlib import pyplot as plt img=cv2.imread('D:/Camera Roll/aling.jpg')
b,g,r=cv2.split(img) #进行通道分离 pic=np.zeros(np.shape(img),np.uint8) #生成零矩阵 pic[:,:,0]=b cv2.namedWindow('blue') cv2.imshow('blue',pic) cv2.waitKey(0)
pic=np.zeros(np.shape(img),np.uint8) pic[:,:,1]=g cv2.namedWindow('green') cv2.imshow('green',pic) cv2.waitKey(0)
pic=np.zeros(np.shape(img),np.uint8) pic[:,:,2]=r cv2.namedWindows('red') cv2.imshow('red',pic) cv2.waitKey(0)
color=("blue","green","red") for i,color in enumerate(color): #用于遍历序列中的下标和元素 hist=cv2.calcHist([img],[i],None,[256],[0,256]) #建立直方图([图像],[通道],掩膜:一般不需要,设为None,[256],[0,256]) plt.plot(hist,color=color) plt.xlim([0,256]) plt.show()
img=cv2.imread('D:/Camera Roll/aling.jpg',0) #读取图片为灰度图 cv2.namedWindow('gray') cv2.imshow('gray',img) cv2.waitKey(0)
plt.hist(img.ravel(),256,[0,256]) plt.show() cv2.destoryAllWindows()
|