相關(guān)商品
【創(chuàng)客學(xué)堂】在樹莓派上安裝和使用SimpleCV(用于圖像處理、識(shí)別)
編輯:Magic2015-08-06 來源:愛板網(wǎng)-懶兔子 瀏覽次數(shù):5426
1.安裝SimpleCV
SimpleCV的安裝十分簡(jiǎn)便,首先通過apt-get工具安裝支持包:
$ sudo apt-get install ipython python-opencv python-scipy python-numpy python-pygame python-setuptools python-pip
之后通過pip命令下載并安裝SimpleCV:
$ sudo pip install https://github.com/sightmachine/SimpleCV/zipball/develop
這樣SimpleCV就安裝完成了。在終端中輸入simplecv即可進(jìn)入SimpleCV shell。
$ simplecv
如果運(yùn)行SimpleCV提示缺少相應(yīng)的組件,也可以通過pip指令進(jìn)行安裝,如筆者在運(yùn)行時(shí)提示缺少svgwirte。
$ sudo pip install svgwrite
圖 SimpleCV shell
與Python shell類似,使用SimpleCV shell的好處包括通過tab鍵自動(dòng)補(bǔ)全,以及通過help命令方便地查詢函數(shù)和模塊的使用說明。
圖 執(zhí)行help命令(懶得開樹莓截圖了,摳一張Ubuntu下的圖)
另外還可以訪問SimpleCV的官方網(wǎng)站http://simplecv.org/查詢API幫助并獲取入門指導(dǎo),或閱讀Kurt Demaagd等人編著的書籍《Practical Computer Vision with SimpleCV》。
安裝完成后,將USB攝像頭連接至樹莓派,在SimpleCV shell中輸入下面的指令來測(cè)試圖像捕獲功能,即通過SimpleCV拍照。第一句指令初始化攝像頭,第二句從攝像頭獲取一幀圖像并保存在img變量中,最后一句則將img中保存的圖像顯示在屏幕上。
SimpleCV:1> cam=Camera()
SimpleCV:2> img=cam.getImage()
SimpleCV:3> img.show()
圖 使用SimpleCV拍照
在Python中使用SimpleCV只需要import模塊即可,下面的Python代碼實(shí)現(xiàn)了相同的拍照效果:
import SimpleCV as scv
import time
cam = scv.Camera()
img = cam.getImage()
img.show()
time.sleep(10)
將代碼保存為cap.py,在終端中運(yùn)行指令:
python cap.py
1.圖像的輸入、輸出
SimpleCV支持多種靈活的圖像輸入、輸出方式。下面的命令分別用于讀取SimpleCV內(nèi)置圖片、本地保存的圖片,以及網(wǎng)絡(luò)圖片。
SimpleCV:1> img1 = Image(“l(fā)ogo”)
SimpleCV:2> img2 = Image(“l(fā)ocal_img.jpg”)
SimpleCV:3> img3 = Image(“http : //simplecv.org/assets/SM_logo_color. png”)
獲取到的圖片,通過save()函數(shù)可以保存為多種圖片格式。
SimpleCV:1> cam=Camera()
SimpleCV:2> img=cam.getImage()
SimpleCV:3> img.save(“pic.jpg”)
SimpleCV:4> img.save(“pic.png”)
SimpleCV:5> img.save(“pic.bmp”)
對(duì)于動(dòng)態(tài)圖像的采集,只需要通過逐幀捕獲圖像,并連續(xù)地顯示在屏幕上。下面的代碼演示了攝像頭的連續(xù)顯示方法:
import SimpleCV as scv
import time
cam = scv.Camera()
display = scv.Display(resolution = (800, 600))
while display.isNotDone():
img = cam.getImage()
img.save(display)
代碼中的Display模塊會(huì)以窗口的形式顯示,其大小通過resolution屬性設(shè)定。將圖片通過save()函數(shù)保存至display就會(huì)顯示在窗口中。display.isNotDone()用來檢測(cè)窗口是否被關(guān)閉,如果不關(guān)閉窗口程序?qū)⒀h(huán)采集和顯示攝像頭圖像。
相關(guān)文章:
【創(chuàng)客學(xué)堂】如何用SSH登錄Banana Pi
【創(chuàng)客學(xué)堂】香蕉派安卓系統(tǒng)之網(wǎng)絡(luò)連接
【創(chuàng)客學(xué)堂】從基礎(chǔ)到中級(jí),樹莓派進(jìn)階學(xué)習(xí)的五個(gè)建議
【創(chuàng)客學(xué)堂】用Scratch制作打地鼠游戲
------------------------------------------------------------------------------------------------------------------
奧松機(jī)器人官網(wǎng):www.robotbase.cn
微信號(hào):搜索公眾號(hào)“奧松機(jī)器人”
QQ群: 271230889(討論,解惑)
微博:@奧松機(jī)器人基地(新+熱)
----------------------------------------------------------------------------------------------------------------
溫馨提示:予人玫瑰,手留余香;如果你喜歡這篇文章,不妨轉(zhuǎn)發(fā)推薦給你身邊的朋友!
用戶評(píng)價(jià)
暫時(shí)還沒有任何用戶評(píng)論