導包:函數
import numpy as np import cv2 import matplotlib.pyplot as plt def show(image): plt.imshow(image) plt.axis('off') plt.show() def imread(image): image=cv2.imread(image) image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB) return image
RGB當中每個顏色都有256階亮度,每一階都對應着一個亮度:ui
image=imread("123.jpg") (R,G,B)=cv2.split(image)#這裏將通道進行拆分 print(image.shape) print(image.shape[:2]) zeros=np.zeros(image.shape[:2],dtype='uint8')#這裏只取了圖像三要素當中的前面部分,畢竟通道拆分以後其顏色空間就僅有一個了 show(cv2.merge([R,zeros,zeros])) show(cv2.merge([zeros,G,zeros])) show(cv2.merge([zeros,zeros,B]))#merge是將通道進行合併
顏色空間的HSV模型。 H表明的是顏色的色調,一共從0—360度。每一度表明這不一樣的顏色模型 S:表明飽和度,飽和度的取值範圍是%0—100,若是飽和度越大,則白色的佔有率越小,顏色則越飽滿,飽和度越小則白色越明顯。 V:表明明度,取值是%0——100,0表示的最黑,100表示的是最亮spa
#因爲咱們在opencv當中的顏色最開始都是採用的是BGR的模式,而後咱們以前編寫的函數將BGR轉換成了RGB的模式,可是在這裏咱們須要從新將RGB的格式 #更改成HSV的格式纔對 image=imread("123.jpg") hsv=cv2.cvtColor(image,cv2.COLOR_RGB2HSV) print(image.shape) print(image.shape[:2]) zeros=np.zeros(image.shape[:2],dtype='uint8')#這裏只取了圖像三要素當中的前面部分,畢竟通道拆分以後其顏色空間就僅有一個了 for (name,chan) in zip(('H','S','V'),cv2.split(hsv)): cv2.imshow(name,chan) cv2.waitKey(0) cv2.destroyAllWindows()
下面展現灰度圖的顯示,這個在咱們圖像處理當中的是最爲經常使用的:code
image=cv2.imread("123.jpg")#這裏用自帶的方法讀取圖片就不會出現圖片顯示不正確的結果了 gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) cv2.imshow('original',image) cv2.imshow('gray',gray) cv2.waitKey(0) cv2.destroyAllWindows()