Computer Vision(CV)
利用電腦或是攝影機,代替人類的眼睛對目標進行辨識、跟蹤、測量...等機器視覺,並更進一步的進行影像處理,使處理後的影像更適合人眼觀察或是儀器檢測。
電腦視覺研究的理論和技術,試圖建立能從影像獲取資訊的人工智慧系統。
電腦視覺也可以說是研究如何使人工系統從影像中「感知」的科學,因為感知可以看作是從感官訊號中提取資訊。
OpenCV
Open Computer Vision Library
- 在BSD(Berkeley Software Distribution license)許可下發布的,可以免費用於學術和商業用途。
- 具c++、python、java等多程式語言API。並支持Windows,Linux,Mac OS,iOS和Android。
用途範圍廣泛:
- interactive art
- inspection
- stitching maps on the web
- advanced robotics
安裝opencv
anaconda:
conda install --channel https://conda.anaconda.org/menpo opencv3
Ros:
已經下載在內
在讀寫圖像方面
- cv2.IMREAD_COLOR
此為預設值,這種格式會讀取 RGB 三個 channels 的彩色圖片,而忽略透明度的 channel。 - cv2.IMREAD_GRAYSCALE
以灰階的格式來讀取圖片。 - cv2.IMREAD_UNCHANGED
讀取圖片中所有的 channels,包含透明度的 channel。
import cv2
img = cv2.imread(FILE_NAME, Flag)
Flag:
cv2.IMREAD_COLOR
cv2.IMREAD_GRAYSCALE
cv2.IMREAD_UNCHANGED
cv2.imwrite(WRITE_FILE_NAME, image)
RGB vs HSV
RGB
R、G、B一定會有取值的範圍,他們的範圍就是0~255。
RGB顏色模型是一個正方體,那麼HSV模型就是一個圓柱,圖示如下:
HSV
HSV都是一種將RGB色彩模型中的點在圓柱坐標系中的表示法。通過圖示我們也能夠看到,他和RGB顏色模型相似,也是由三個屬性決定顏色,H、S、V分別是色彩、深度、明暗,按著圖中方向的變化,其對應的顏色也會改變,三者也同樣是有取值範圍的,不同的是他的灰度圖和取值範圍, S = 0時,只有灰度,取值範圍是角度:
色調H
用角度度量,取值範圍為0°~360°,從紅色開始按逆時針方向計算,紅色為0°,綠色為120°,藍色為240°。它們的補色是:黃色為60°,青色為180°,品紅為300°;飽和度s
飽和度S表示顏色接近光譜色的程度。通常取值範圍為0%~100%,值越大,顏色越飽和。明度V
明度表示顏色明亮的程度,對於光源色,明度值與發光體的光亮度有關;對於物體色,此值和物體的透射比或反射比有關。通常取值範圍為0%(黑)到100%(白)
下一篇,將說明在空拍影像中單一辨識紅色