iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
1
AI & Data

AI的介紹-水果系列 第 6

Day 6 顏色的差異

  • 分享至 

  • xImage
  •  

大家好~~歡迎來到第六天將開始介紹新的章節,如標題所謂的顏色的差異。

何謂顏色差異呢?
大家可能聽過 RGB 或者 CMYK,但不知道有沒有聽說過甚麼叫 HSV 呢?

HSV = (Hue(色相))(Saturation(飽和度))(Lightness(明度))
https://ithelp.ithome.com.tw/upload/images/20200921/20120312xx03lFTK7v.png
由上圖可以看見,它的色彩利用那三個位置,箭頭指向越大的部分就是參數越高,所以在設定色樣的時候必須要透過圖形,或者網路上有人經過運算的程式,來找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)

https://ithelp.ithome.com.tw/upload/images/20200921/20120312nMaP0VeriR.png

你這些的鮮艷顏色,我們就可以從這個身上取到白色以及黑色的部分,不過這個流程會需要另外一個方法叫做 cv2.InRange。

  1. cv2.inRange :
    • 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://ithelp.ithome.com.tw/upload/images/20200921/20120312M1frmbIHph.png

上方右圖,它的程式碼是鎖定綠色的範圍,將綠色固定住,其餘顏色都不要,它的輸出就會如右圖。

參考資料: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 中是如何運用模組的方式,那接下來我們下篇見~~~
謝謝大家

一步一步往前走,走到岔路照樣走,只要觀念正確就能走上對的路。


上一篇
Day 5 AI 灰階與輪廓概念-3
下一篇
Day 7 執行的第一步
系列文
AI的介紹-水果30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言