1.1 顏色空間介紹
RGB 顏色空間是大家最熟悉的顏色空間,即三基色空間,任何一種顏色都可以由該三種 顏色混合而成。然而一般對顏色空間的圖像進行有效處理都是在 HSV 空間進行的,HSV(色 調 Hue,飽和度 Saturation,亮度 Value)是根據顏色的直觀特性創建的一種顏色空間, 也稱六角 錐體模型。
參考:https://blog.csdn.net/taily_duan/article/details/51506776
為什么會選擇 HSV 空間而不是 RGB 空間? 對於圖像而言,識別相應的顏色在 RGB 空間、 HSV 空間或者其它顏色空間都是可行的。之所以選擇 HSV,是因為 H 代表的色調基本上可以 確定某種顏色,再結合飽和度和亮度信息判斷大於某一個閾值。而 RGB 由三個分量構成, 需要判斷每種分量的貢獻比例。即 HSV 空間的識別的范圍更廣,更方便。
圖 1-1 HSV顏色空間模型
1.2 三種顏色空間的轉換(gray BGR HSV)
在OpenCV中有超過150種的顏色空間轉換的方法,但是我們經常會用到的也就只有兩種,即 BGR->Gray 和 BGR->HSV。注意 Gray 和 HSV 不可以互相轉換。 顏色空間轉換:cv2.cvtColor(input_image, flag)
BGR->Gray: flag 就是 cv2.COLOR_BGR2GRAY
BGR->HSV: flag 就是 cv2.COLOR_BGR2HSV
OpenCV 中 HSV 顏色空間的取值范圍:
H [0, 179] S [0, 255] V [0, 255]
圖 1-2 常用顏色的取值范圍
Demo, 程序的源碼位於/home/pi/yahboom/colorBlcok/colorBlock.py:
圖 1-3 顏色空間轉換識別圖片中的黃色和紅色部分

在這個程序中,我們第一次接觸了掩膜,有些小伙伴可能對掩膜不太了解,掩膜的概念描述不太好理解,它可以被理解為位圖,可以進行腐蝕膨脹等形態學的操作。我們只需要知道,在提取感興趣區域、屏蔽圖片某些區域、結構特征提取和特殊圖像制作中都可能用到掩膜,即可。
progress:可自行嘗試實現多種顏色的識別。
