openCV 介紹與導入實作


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%(白)

下一篇,將說明在空拍影像中單一辨識紅色

本部分主要是用wifi的連接,以空拍機的協定控制空拍機的飛行行為。






Related Posts

Firebase Storage 入門

Firebase Storage 入門

Week3 筆記|[JS102] Module、NPM、eslint、Jest

Week3 筆記|[JS102] Module、NPM、eslint、Jest

[ 筆記 ] JavaScript - 02 函式

[ 筆記 ] JavaScript - 02 函式

系列文背景與簡介

系列文背景與簡介

漫談傳輸介面-PCIe

漫談傳輸介面-PCIe

如何用 Markov Decision Process 描述 Human-Robot Interaction 問題

如何用 Markov Decision Process 描述 Human-Robot Interaction 問題



Comments