2013-03-17 60 views
3

我正在開發一個項目,在該項目中,我需要編程一個Raspberry Pi來從網絡攝像頭獲取圖像,搜索該圖像以找出一個框,並通過它的大小比例來確定它是哪個框。這些箱子將成爲環境其他部分的獨特顏色。確定從箱子和角度到箱子的距離也是很好的。Python定位系統

我見過的一切都似乎表明這應該是可能的,但經過幾天的搜索,我還沒有找到任何能夠幫助我做到這一點的東西。這個項目是我第一次使用Python,所以我非常新鮮。任何幫助,即使如何做到這一點的一小部分將不勝感激。

這是我迄今爲止的工作代碼。這不是很多,它是所有從攝像頭抓取的圖像:/

import imgproc 
from img imgproc * 
camera = Camera(160, 120) 
viewer = Viewer(160, 120) 
n = 1 
while (n > 0): 
    img = camera.grabImage() 
    viewer.displayImage(img) 

回答

2

這不是一個完整的解決方案,但對如何上手一些好的想法:)

首先,有OpenCV的Python綁定,一個開源免費的計算機視覺庫,最初用C語言編寫:http://opencv.willowgarage.com/documentation/python/index.html

解決計算機視覺問題時,你必須做的第一件事是預處理。特別是,知道盒子是不同的顏色有助於LOT - 這意味着我們可以根據顏色設定閾值,並使用諸如http://aishack.in/tutorials/thresholding/之類的技術在盒子不是黑色的位置創建圖像,在盒子位於白色的位置創建圖像。

然後,您將遵循類似於本博客中描述的Sudoku抓取器/解算器的過程 - 您可以進行斑點提取(http://en.wikipedia.org/wiki/Blob_extraction),然後執行hough變換以獲取線條,然後可以將線條的距離彼此來確定盒子的比例。 http://aishack.in/tutorials/sudoku-grabber-with-opencv-plot/

差不多就只有瞭解人們的OpenCV的數獨解算器,直到你得到它是如何工作的要點,因爲有很多很好的教程,它是計算機視覺項目怎麼走一個簡單的例子:https://www.google.com.au/search?q=sudoku+opencv&aq=f&oq=sudoku+opencv&aqs=chrome.0.57j60l3j0l2.1506&sourceid=chrome&ie=UTF-8

0

你可能要嘗試從github回購安裝SimpleCV。使用SimpleCV,您應該可以使用Image.hueDistance命令獲取blob的顏色。如果您使用findBlobs命令來查找您的方框,則每個blob應將其縱橫比作爲參數。我們剛剛發佈了關於SimpleCV here的完整PyCon教程。您可以查看幻燈片here。我們聽說在RaspberryPi上安裝PyGame(SimpleCV依賴)有一些問題。 This walk through might address those issues