SlideShare a Scribd company logo
Raspberry Pi 研習營
CAVE Education
徐豐智
E-mail:jesusvictory777@cavedu,com
1
Session 5: 用視覺程式庫偵測
彩色物件
2
OpenCV
• 環境設定
• 更多簡單的範例
– 讀圖&高斯模糊
– 開啟攝影機
• OpenCV 專案
– 影像差異
– 歷史移動影像
– 背景相減
– 人臉偵測
關於OpenCV
• OpenCV(開放原始碼之電腦視覺)主要是針對在
及時計算機視覺庫的一種編程功能。
– 人機介面(HCI)
– 物體識別
– 切割辨識
– 人臉辨識
– 手勢辨識
– 移動偵測
– 動作認知
– 場景重構(Structure From Motion)
– 立體聲和多台攝影機校準及深度計算
– 移動機器人.
首先準備
• 裝備視覺函式庫opencv
• 包含opencv函式庫的Rpi主程式
– Raspbian openCV img 檔下載
– 或自行安裝(page7)
• 裝備攝影機webcam
– 確認安裝資料夾
– $cd /dev
– $ls
– 尋找video0
5
視訊套件
• 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
自行安裝視覺函式庫
• 已燒錄rpiopencv.img的SD卡,請跳過此頁
– $sudo apt-get update
• 安裝轉譯程式
– $sudo apt-get install build-essential
• 聲音與影像的編碼和解碼
– $sudo apt-get install libavformat
• 聲音與影像的轉碼
– $sudo apt-get install ffmpeg
7
自行安裝視覺函式庫
• 已燒錄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
自行安裝視覺函式庫
• 已燒錄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
OpenCV函式庫網站
• Opencv函式網站
• http://docs.opencv.org/2.4.9/modules/refm
an.html
• 視覺辨識入門網站
• http://www.csie.ntnu.edu.tw/~u91029/Imag
e.html
10
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
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
camera.py
• while True: #建立顯示畫面的迴圈
• img = cv.QueryFrame(capture)#捕捉畫面並指定
於img
• cv.ShowImage(“camera”, img)#將img定位於視窗
• if cv.WaitKey(10) == 27#按下ESC鍵結束
• break
• cv.DestroyAllWindows()
13
偵測彩色物件
• 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)#
產生一個預設畫面,可以保存下面程式的色調
• cv.CvtColor(img,hue_img, cv.CV_BGR2HSV)#儲存
色度、彩度、亮度畫面
• threshold_img =
cv.CreateImage(cv.GetSize(hue_img), 8, 1)#再建立
一個黑白畫面、將非特定顏色設為黑色
17
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
圖像平滑化演算
• 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_RETR_CCOMP,
cv.CV_CHAIN_APPROX_SIMPLE)
• #尋找在臨界門檻值內的區塊
• points = [] #建立保存不同色點的陣列
• while contour: #檢查所有迴圈內的輪廓
• rect = cv.BoundingRect(list(contour))
• #對彩色區塊建立一個封閉的長方形
32
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

More Related Content

PPTX
[4]投影片 futurewad樹莓派研習會 141211
PPTX
自动化漏洞利用关键技术研究(Automatic Vulnerability Exploitation Technologies)
PDF
20200905_tcn_python_opencv_part1_omnixri
PDF
mBot 教學1 組裝與測試
PDF
MakeBlock 超萌機器人 mBot 簡介 - 探奇工作室
PDF
使用openCV做影像辨識 @ iplayground
PDF
2017 Week 14 Computer Vision
PPTX
Android程式設計(7)
[4]投影片 futurewad樹莓派研習會 141211
自动化漏洞利用关键技术研究(Automatic Vulnerability Exploitation Technologies)
20200905_tcn_python_opencv_part1_omnixri
mBot 教學1 組裝與測試
MakeBlock 超萌機器人 mBot 簡介 - 探奇工作室
使用openCV做影像辨識 @ iplayground
2017 Week 14 Computer Vision
Android程式設計(7)

Similar to Using openCV on Raspberry Pi (20)

PPT
漫谈php和java
PDF
Build desktop app_by_xulrunner
PPTX
02.python.开发最佳实践
PDF
Javascript primer plus
PPTX
140921 - 出版
PPTX
Team1 - 拉亞計畫
PPT
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
PDF
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
PDF
Top100summit东软 孙广宇-uni sdp基于html5构建的跨平台的统一智能设备解决方案
PPT
课题二:Node.js那些事儿
PPTX
介紹前端 Web 技術在跨平台開發上的應用
PDF
2012 java two-desktop-appliction-using-j-ruby-with-swt
 
PDF
電腦視覺與Open CV 影像處理簡介
PPTX
Bluemix 智能機器人情境展示
PDF
PyCon China 2012 孙毅
PDF
人人网开发一站式体验
PPTX
Android JNI
PDF
智能车软件设计浅谈 清华-张天雷-上传版本
PPTX
快快樂樂學 Angular 2 開發框架
PDF
Foundation of software development 2
漫谈php和java
Build desktop app_by_xulrunner
02.python.开发最佳实践
Javascript primer plus
140921 - 出版
Team1 - 拉亞計畫
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Top100summit东软 孙广宇-uni sdp基于html5构建的跨平台的统一智能设备解决方案
课题二:Node.js那些事儿
介紹前端 Web 技術在跨平台開發上的應用
2012 java two-desktop-appliction-using-j-ruby-with-swt
 
電腦視覺與Open CV 影像處理簡介
Bluemix 智能機器人情境展示
PyCon China 2012 孙毅
人人网开发一站式体验
Android JNI
智能车软件设计浅谈 清华-张天雷-上传版本
快快樂樂學 Angular 2 開發框架
Foundation of software development 2
Ad

More from CAVEDU Education (20)

PPTX
Google TPU Edge SBC_190424
PPTX
From computational Thinking to computational Action - Dr. Hal Abelson, MIT Ap...
PPTX
180321 MIT見聞分享
PPTX
BBC Micro:bit beginner project
PPTX
LINE Messaging API with LinkIt 7697
PDF
Latte panda workshop_japan
PPTX
拿鐵熊貓外殼設計0707
PPTX
LinkIt 7697 outer case - DesignSpark Mechanical / Onkscape
PPTX
170615 國中小自造者教育師資培訓營
PPTX
170522_Raspberry Pi 相容開發板
PPTX
LinkIt 7697 IoT tutorial
PPTX
Maker Movement and Education in Taiwan
PPTX
物聯網教學與上海深圳maker行
PDF
PDF
IBM以雲端技術與物聯網創新產業應用@2016 New Taipei Maker Faire
PDF
AAEON 當創客碰上UP板 - Intel Cherry Trail 高效能maker開發者平台@2016 new taipei maker faire
PPTX
物聯網好棒棒 您專屬的IoT私有雲平台
PPTX
絕地武士心靈控制家用雲端智慧型物聯網光劍搭載無線路由器光劍底座Final
PPTX
LinkIt ONE tutorial #1- Basics
PPTX
LinkIt ONE tutorial #2- Communication and cloud service
Google TPU Edge SBC_190424
From computational Thinking to computational Action - Dr. Hal Abelson, MIT Ap...
180321 MIT見聞分享
BBC Micro:bit beginner project
LINE Messaging API with LinkIt 7697
Latte panda workshop_japan
拿鐵熊貓外殼設計0707
LinkIt 7697 outer case - DesignSpark Mechanical / Onkscape
170615 國中小自造者教育師資培訓營
170522_Raspberry Pi 相容開發板
LinkIt 7697 IoT tutorial
Maker Movement and Education in Taiwan
物聯網教學與上海深圳maker行
IBM以雲端技術與物聯網創新產業應用@2016 New Taipei Maker Faire
AAEON 當創客碰上UP板 - Intel Cherry Trail 高效能maker開發者平台@2016 new taipei maker faire
物聯網好棒棒 您專屬的IoT私有雲平台
絕地武士心靈控制家用雲端智慧型物聯網光劍搭載無線路由器光劍底座Final
LinkIt ONE tutorial #1- Basics
LinkIt ONE tutorial #2- Communication and cloud service
Ad

Using openCV on Raspberry Pi

Editor's Notes

  • #19: compare() , inRange() , threshold() , adaptiveThreshold() , Canny()