記錄學習內容。
主要是看網路上的文章和影片,做些紀錄。
內容可能有錯誤。
想來用openCV改變圖片顏色。
先看HSV是什麼
HSV即色相、飽和度、明度(Hue, Saturation, Value)
色相(H)是色彩的基本屬性,就是平常所說的顏色名稱,如紅色、黃色等。
飽和度(S)是指色彩的純度,越高色彩越純,低則逐漸變灰,取0-100%的數值。
明度(V),亮度(L),取0-100%、越高越亮。
教學來源:
Detecting Colour in an Image using OpenCv and Python
先看到作者的說明:
lower_black = [0,0,0]
upper_black = [250,255,30]
lower_red = [0,150,50]
upper_red = [10,255,255]
lower_green = [45,150,50]
upper_green = [65,255,255]
lower_dark_pink = [160,150,0]
upper_dark_pink = [170,255,255]
lower_pink = [145,150,0]
upper_pink = [155,255,255]
lower_orange = [15,150,0]
upper_orange = [25,255,255]
在作者的範例圖片裡,顏色大概都有符合在lower 和upper之間。
但是拿其他的圖片來側,好像有些沒什麼用。
來看一下這篇stackoverflow
Choosing the correct upper and lower HSV boundaries for color detection withcv::inRange
(OpenCV)
OpenCV uses H: 0-179, S: 0-255, V: 0-255
S: 0-255, V: 0-255 的範圍 應該是正確的,OpenCV的S、V就在0-255之間跑 。
這邊有ORANGE範圍
ORANGE_MIN = np.array([5, 50, 50],np.uint8)
ORANGE_MAX = np.array([15, 255, 255],np.uint8)
這是youtube教學的ORANGE範圍:
lower_orange = [15,150,0]
upper_orange = [25,255,255]
stackoverflow回答裡的這張圖:
大概這樣:
10到25: 橘色
30 : 黃色
30-50 : 淡綠色
50-80: 綠色
80-95: Cyan(青色)
115-125 : 深藍
145-155 粉色
150-180 紅色
黑色就參考教學裡的:
lower_black = [0,0,0]
upper_black = [250,255,30]
看著這個表,然後對照自己要的顏色。
之後再了解cv2.bitwise_and ,轉灰階、轉黑白 。