何謂顏色差異呢?
大家可能聽過 RGB 或者 CMYK,但不知道有沒有聽說過甚麼叫 HSV 呢?
HSV = (Hue(色相))(Saturation(飽和度))(Lightness(明度))
由上圖可以看見,它的色彩利用那三個位置,箭頭指向越大的部分就是參數越高,所以在設定色樣的時候必須要透過圖形,或者網路上有人經過運算的程式,來找RGB 與 HSV 相對的數值。色彩運算
為何要知道這個 HSV 的轉換?其實可以使用 RGB 直接單純做到顏色的轉換,但是今天如果要細節一點的話,有些水果在外面種植上,會呈現亮點或者是暗面,這時候就很需要將他的暗面與明亮點放大來看,將它放大的情況,如果這時候使用我們轉換黑白的參數上去,它能切割的黑色與白色就會更加明顯。
用一個例子來做範例簡單的轉換程式
import cv2
image = cv2.imread('fruits.jpg')
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
cv2.imshow('Input', image)
cv2.imshow('Result', hsv)
cv2.waitKey(0)
你這些的鮮艷顏色,我們就可以從這個身上取到白色以及黑色的部分,不過這個流程會需要另外一個方法叫做 cv2.InRange。
如網站寫上的方式:
import numpy as np
lower_green = np.array([35, 43, 46])
upper_green = np.array([77, 255, 255])
mask = cv2.inRange(hsv, lower_green, upper_green)
上方右圖,它的程式碼是鎖定綠色的範圍,將綠色固定住,其餘顏色都不要,它的輸出就會如右圖。
參考資料:https://www.ginifab.com.tw/tools/colors/rgb_to_hsv_hsl.html
參考資料:https://shengyu7697.github.io/blog/2020/03/22/Python-OpenCV-rgb-to-hsv/
今日就簡單交了各位顏色上的差異,還有在 python 中是如何運用模組的方式,那接下來我們下篇見~~~
謝謝大家
一步一步往前走,走到岔路照樣走,只要觀念正確就能走上對的路。