Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Raspberry Pi 研習營
CAVE Education
徐豐智
E-mail:jesusvictory777@cavedu,com
1
Session 5: 用視覺程式庫偵測
彩色物件
2
OpenCV
• 環境設定
• 更多簡單的範例
– 讀圖&高斯模糊
– 開啟攝影機
• OpenCV 專案
– 影像差異
– 歷史移動影像
– 背景相減
– 人臉偵測
關於OpenCV
• OpenCV(開放原始碼之電腦視覺)主要是針對在
及時計算機視覺庫的一種編程功能。
– 人機介面(HCI)
– 物體識別
– 切割辨識
– 人臉辨識
– 手勢辨識
– 移動偵測
– 動作認知
– 場景重構(Structur...
首先準備
• 裝備視覺函式庫opencv
• 包含opencv函式庫的Rpi主程式
– Raspbian openCV img 檔下載
– 或自行安裝(page7)
• 裝備攝影機webcam
– 確認安裝資料夾
– $cd /dev
– $l...
視訊套件
• luvcview(Linux USB Video Class View)
– $which luvcview
– $sudo apt-get install luvcview
– $luvcview –s 320X240
• Gu...
自行安裝視覺函式庫
• 已燒錄rpiopencv.img的SD卡,請跳過此頁
– $sudo apt-get update
• 安裝轉譯程式
– $sudo apt-get install build-essential
• 聲音與影像的編碼和...
自行安裝視覺函式庫
• 已燒錄rpiopencv.img的SD卡,請跳過此頁
• Opencv基本函式庫
– $sudo apt-get install libcv2.3 libcvaux2.3
libhighgui2.3
• Opencv-p...
自行安裝視覺函式庫
• 已燒錄rpiopencv.img的SD卡,請跳過此頁
• 顯示更多用來編譯opencv的開發工具
– $sudo apt-get install libcvaux-dev
• 顯示opencv標頭檔和靜態資料庫
– $s...
OpenCV函式庫網站
• Opencv函式網站
• http://docs.opencv.org/2.4.9/modules/refm
an.html
• 視覺辨識入門網站
• http://www.csie.ntnu.edu.tw/~u91...
Opencv開啟攝影機
• $cp /home/pi/opencv2.4.9/
• samples/python/camera.py camera.py
• $sudo python camera.py
– /home/pi/opencv2.4...
camera.py
• import cv2.cv as cv:匯入opencv資料庫
• import time:匯入時間資料庫
• 1、cv.NamedWindow(“camera”, 1):建立一個展示
畫面的視窗
• 2、capture...
camera.py
• while True: #建立顯示畫面的迴圈
• img = cv.QueryFrame(capture)#捕捉畫面並指定
於img
• cv.ShowImage(“camera”, img)#將img定位於視窗
• i...
偵測彩色物件
• camera2.py,或在camrea.py增加指令
14
camera2.py(從camera.py修改)
15
16
camera2.py
• cv.Smooth(img,img,cv.CV_BLUR,3)#將圖像平滑化,
去除較大的偏差
• hue_img = cv.CreateImage(cv.GetSize(img), 8, 3)#
產生一個預設畫面,可...
camera2.py
• cv.InRangeS(hue_img, (38,120,60),(75,
255, 255), threshold_img)
– #將(38,120,60),(75, 255, 255)為特定顏色的彩
色範圍
– #...
圖像平滑化演算
• CV_BLUR_NO_SCALE
• CV_BLUR
• CV_GAUSSIAN
• CV_MEDIAN
19
平滑化是什麼?
• 原圖 使用濾鏡
20
平滑化是什麼?
• 銳利化的結果比較
21
平滑化是什麼?
• SIZE是什麼?
22
高斯矩陣範例
23
中值濾波器
24
HSL與HSV色彩空間(wiki)
• HSL
• Hue,Saturation,Lightness
• HSV、HSB
• Hue, Saturation, Value
• Hue, Saturation, Brightness
25
HSL與HSV色彩空間(wiki)
26
HSL與HSV色彩空間(wiki)
27
• 使用色度偵測色彩教學:
• http://www.shervinemami.info/colorConver
sion.html
• 查詢RGB、HSV、HEX數值
• http://www.colorspire.com/
•
28
在周圍畫上綠色框線
• 下載camera3.py,或在camrea2.py修改
• 網址:
– https://sites.google.com/a/cavedu.com/www/fil
e
29
camera3.py(修改camera2.py)
30
camera3.py(程式碼)
31
camera3.py
• storage = cv.CreateMemStorage(0)
• #建立操控畫面的記憶體空間
• contour = cv.FindContours(threshold_img, storage,
cv.CV_RE...
camera3.py
• contour = contour.h_next() #為下一個輪廓準備
• size = (rect[2]*rect[3])
• #計算長方形的面積
• if size>100: #大小大於100像素
• pt1=(...
Upcoming SlideShare
Loading in …5
×

Using openCV on Raspberry Pi

7,911 views

Published on

Brief introduction of installation and tutorial of openCV on your Raspberry Pi.

Easy and fun, let's try it~

More topics: http://www.cavedu.com

Published in: Technology
  • Be the first to comment

Using openCV on Raspberry Pi

  1. 1. Raspberry Pi 研習營 CAVE Education 徐豐智 E-mail:jesusvictory777@cavedu,com 1
  2. 2. Session 5: 用視覺程式庫偵測 彩色物件 2
  3. 3. OpenCV • 環境設定 • 更多簡單的範例 – 讀圖&高斯模糊 – 開啟攝影機 • OpenCV 專案 – 影像差異 – 歷史移動影像 – 背景相減 – 人臉偵測
  4. 4. 關於OpenCV • OpenCV(開放原始碼之電腦視覺)主要是針對在 及時計算機視覺庫的一種編程功能。 – 人機介面(HCI) – 物體識別 – 切割辨識 – 人臉辨識 – 手勢辨識 – 移動偵測 – 動作認知 – 場景重構(Structure From Motion) – 立體聲和多台攝影機校準及深度計算 – 移動機器人.
  5. 5. 首先準備 • 裝備視覺函式庫opencv • 包含opencv函式庫的Rpi主程式 – Raspbian openCV img 檔下載 – 或自行安裝(page7) • 裝備攝影機webcam – 確認安裝資料夾 – $cd /dev – $ls – 尋找video0 5
  6. 6. 視訊套件 • luvcview(Linux USB Video Class View) – $which luvcview – $sudo apt-get install luvcview – $luvcview –s 320X240 • Guvcview – $sudo apt-get install guvcview – $sudo guvcview 6
  7. 7. 自行安裝視覺函式庫 • 已燒錄rpiopencv.img的SD卡,請跳過此頁 – $sudo apt-get update • 安裝轉譯程式 – $sudo apt-get install build-essential • 聲音與影像的編碼和解碼 – $sudo apt-get install libavformat • 聲音與影像的轉碼 – $sudo apt-get install ffmpeg 7
  8. 8. 自行安裝視覺函式庫 • 已燒錄rpiopencv.img的SD卡,請跳過此頁 • Opencv基本函式庫 – $sudo apt-get install libcv2.3 libcvaux2.3 libhighgui2.3 • Opencv-python版套件 – $sudo apt-get install python-opencv • Opencv技術文件 – $sudo apt-get install opencv-doc 8
  9. 9. 自行安裝視覺函式庫 • 已燒錄rpiopencv.img的SD卡,請跳過此頁 • 顯示更多用來編譯opencv的開發工具 – $sudo apt-get install libcvaux-dev • 顯示opencv標頭檔和靜態資料庫 – $sudo apt-get install libcv-dev • 另一個顯示opencv標頭檔和靜態資料庫 – $sudo apt-get install libhighgui-dev 9
  10. 10. OpenCV函式庫網站 • Opencv函式網站 • http://docs.opencv.org/2.4.9/modules/refm an.html • 視覺辨識入門網站 • http://www.csie.ntnu.edu.tw/~u91029/Imag e.html 10
  11. 11. Opencv開啟攝影機 • $cp /home/pi/opencv2.4.9/ • samples/python/camera.py camera.py • $sudo python camera.py – /home/pi/opencv2.4.9/samples/python/camera .py 11
  12. 12. camera.py • import cv2.cv as cv:匯入opencv資料庫 • import time:匯入時間資料庫 • 1、cv.NamedWindow(“camera”, 1):建立一個展示 畫面的視窗 • 2、capture = cv.CaptureFromCAM(0):建立攝影 機與畫面的結構 • 3、cv.SetCaptureProperty(capture, 3, 360):設定 畫面寬度 • 4、cv.SetCaptureProperty(capture, 4, 240):設定 高度 12
  13. 13. camera.py • while True: #建立顯示畫面的迴圈 • img = cv.QueryFrame(capture)#捕捉畫面並指定 於img • cv.ShowImage(“camera”, img)#將img定位於視窗 • if cv.WaitKey(10) == 27#按下ESC鍵結束 • break • cv.DestroyAllWindows() 13
  14. 14. 偵測彩色物件 • camera2.py,或在camrea.py增加指令 14
  15. 15. camera2.py(從camera.py修改) 15
  16. 16. 16
  17. 17. camera2.py • cv.Smooth(img,img,cv.CV_BLUR,3)#將圖像平滑化, 去除較大的偏差 • hue_img = cv.CreateImage(cv.GetSize(img), 8, 3)# 產生一個預設畫面,可以保存下面程式的色調 • cv.CvtColor(img,hue_img, cv.CV_BGR2HSV)#儲存 色度、彩度、亮度畫面 • threshold_img = cv.CreateImage(cv.GetSize(hue_img), 8, 1)#再建立 一個黑白畫面、將非特定顏色設為黑色 17
  18. 18. camera2.py • cv.InRangeS(hue_img, (38,120,60),(75, 255, 255), threshold_img) – #將(38,120,60),(75, 255, 255)為特定顏色的彩 色範圍 – #Python: cv.InRangeS(src, lower, upper, dst) 18
  19. 19. 圖像平滑化演算 • CV_BLUR_NO_SCALE • CV_BLUR • CV_GAUSSIAN • CV_MEDIAN 19
  20. 20. 平滑化是什麼? • 原圖 使用濾鏡 20
  21. 21. 平滑化是什麼? • 銳利化的結果比較 21
  22. 22. 平滑化是什麼? • SIZE是什麼? 22
  23. 23. 高斯矩陣範例 23
  24. 24. 中值濾波器 24
  25. 25. HSL與HSV色彩空間(wiki) • HSL • Hue,Saturation,Lightness • HSV、HSB • Hue, Saturation, Value • Hue, Saturation, Brightness 25
  26. 26. HSL與HSV色彩空間(wiki) 26
  27. 27. HSL與HSV色彩空間(wiki) 27
  28. 28. • 使用色度偵測色彩教學: • http://www.shervinemami.info/colorConver sion.html • 查詢RGB、HSV、HEX數值 • http://www.colorspire.com/ • 28
  29. 29. 在周圍畫上綠色框線 • 下載camera3.py,或在camrea2.py修改 • 網址: – https://sites.google.com/a/cavedu.com/www/fil e 29
  30. 30. camera3.py(修改camera2.py) 30
  31. 31. camera3.py(程式碼) 31
  32. 32. camera3.py • storage = cv.CreateMemStorage(0) • #建立操控畫面的記憶體空間 • contour = cv.FindContours(threshold_img, storage, cv.CV_RETR_CCOMP, cv.CV_CHAIN_APPROX_SIMPLE) • #尋找在臨界門檻值內的區塊 • points = [] #建立保存不同色點的陣列 • while contour: #檢查所有迴圈內的輪廓 • rect = cv.BoundingRect(list(contour)) • #對彩色區塊建立一個封閉的長方形 32
  33. 33. camera3.py • contour = contour.h_next() #為下一個輪廓準備 • size = (rect[2]*rect[3]) • #計算長方形的面積 • if size>100: #大小大於100像素 • pt1=(rect[0],rect[1]) • #長方形左側X、Y座標 • pt2=(rect[0]+rect[2],rect[1]+rect[3]) • cv.Rectangle(img, pt1, pt2, )) • #在指定的位置上畫一個長方形 33

×