【opencv+python】影象處理之一、顏色空間RGB | python hsv紅色
該系列文章為OpenCV+PythonTutorials的學習筆記程式碼託管在Github轉載請註明:http://blog.csdn.net/a352611/article/details/51416769[三記的部落格]顏色空間轉換cv2.cvtColorRGB就是指Red,Green和Blue,一副影象由這三個channel(通道)構成Gray就是隻有灰度值一個channelHSV即Hue(色調),Saturation(飽和度)和Value(亮度)三個channelRGB是為了讓機器更好的顯示影象,對於人類來說並不直觀,HSV更為貼近我們的認知,所以通常我們在針對某種顏色做提取時會轉換到HSV顏色空間裡面來處理.需要注意的是H的取值範圍為0°~360°,從紅色開始按逆時針...
該系列文章為 OpenCV+Python Tutorials的學習筆記 程式碼託管在Github 轉載請註明: http://blog.csdn.net/a352611/article/details/51416769 [三記的部落格]
顏色空間轉換 cv2.cvtColor RGB就是指Red,Green和Blue,一副影象由這三個channel(通道)構成 Gray就是隻有灰度值一個channel HSV即Hue(色調),Saturation(飽和度)和Value(亮度)三個channelRGB是為了讓機器更好的顯示影象,對於人類來說並不直觀,HSV更為貼近我們的認知,所以通常我們在針對某種顏色做提取時會轉換到HSV顏色空間裡面來處理. 需要注意的是H的取值範圍為0°~360°,從紅色開始按逆時針方向計算,紅色為0°,綠色為120°,藍色為240°,想提取紅色時需注意取值應為-10~10(打比方)OpenCV中H的取值範圍為0~180(8bit儲存時),
例子 提取藍色物體 HSV = cv2.cvtColor(Img, cv2.COLOR_BGR2HSV)H, S, V = cv2.split(HSV)LowerBlue = np.array([100, 100, 50])UpperBlue = np.array([130, 255, 255])mask = cv2.inRange(HSV, LowerBlue, UpperBlue)BlueThings = cv2.bitwise_and(Img, Img, mask=mask) PS:RGB在OpenCV中儲存為BGR的順序,資料結構為一個3D的numpy.array,索引的順序是行,列,通道:
BGRImg = cv2.imread(ImgPath)B = BGRImg[:, :, 0]G = BGRImg[:, :, 1]R = BGRImg[:, :, 2]也可以使用:
BGRImg = cv2.imread(ImgPath)B, G, R = cv2.split(BGRImg)注意,cv2.split的速度比直接索引要慢,但cv2.split返回的是拷貝,...