2013-11-28 34 views
0

我和一些同學正在爲學校開展一個項目。我們目前的問題的簡單描述:用Python識別QR碼的PIECE

我們必須建立一個車輛,並用樹莓派和相機搭載它。當QR碼放在相機前面時,我們可以讓相機拍攝它的照片。通過使用外部Python模塊(qr-tools),Raspberry Pi可以自動解碼QR碼。

當QR碼的只是一個(小)部分是攝像機可見,解碼過程將失敗(如預期)。我們想知道是否有簡單的方法來檢測圖像中QR碼的部分。這樣,樹莓派可以重新定位車輛,以便可以在相機上捕獲整個QR碼。

這裏的關鍵字是'easy'。我們還有幾天的時間來改進我們目前的車輛,解決這個問題將是一個不錯的功能。

編輯:我錯誤地鏈接了錯誤的模塊。

回答

1

我打算假設您正在嘗試識別與相機視圖邊緣重疊的QR碼。在這種情況下,您可以檢查圖像的四個邊緣以獲得高對比度(黑白交替顯示)區域,如果發現任何問題,請轉到相應的方向。

下面是一個例子,使用random image from Flickr(反覆的邊緣像素):

QR Code on classroom window, source allanah_k@flickr

我建議沿所有四個邊緣微分的灰度值,並且計算絕對差值的滾動平均值。峯值最高的一方是你最好的選擇。

供參考,這裏是我從上述圖像計算(以灰色示出)的亮度值,用平均超過±20像素的窗口的絕對差的結果一併:

Brightness of edge pixels and averaged difference values

作爲你可以看到,圖像頂部的天窗(或任何它)會有問題,但前景中的QR碼仍然會產生最高的峯值。

+0

謝謝你的回答 - 看起來應該不難做出這樣的工作。但是,目前我正在使用opencv研究數字圖像相關和跟蹤(DIC/DDIT)。 這是用於測量光學鼠標運動的技術。如果我們可以將它應用到我們的車輛上,它可能能夠準確行駛,然後QR碼就會在攝像頭前面(這將消除識別一段QR碼的需要)。 但是,如果這種方法無效,我們可能會實施您的解決方案,假設它可以在一兩天內完成。 – jvanheesch