2014-04-05 184 views
4

我目前正在研究一個需要確定箭頭方向的項目。這些箭頭將用作輸入的機器人,以確定它應該往什麼方向。OpenCV 2.4.8(Python)確定箭頭的方向

我使用的是Beaglebone黑色與Ubuntu和OpenCV 2.4.8。我正在試驗SURF,ORB,SIFT,Moments和BFMatcher。我還沒有找到確定箭頭方向的可靠方法。這需要實時完成,因爲我們將使用視頻中的幀。

我在想,如果有人可以提供一個可靠的解決方案,以確定一個箭頭的方向?

這裏是一個示例圖像:

回答

7

下面是一些方法,我認爲它會與您提供的圖片作品。

由於您的箭頭圖像對於每個角落具有以下角度(如下圖所示),因此您始終可以將箭頭指示爲角度接近90度的角以及角度接近45度的相鄰角。

即找出箭頭尖端,計算這使得箭頭指針相鄰線的角度,並且加起來的角度,這將是您的箭頭方向

enter image description here

所以儘量用

  1. 查找contour and approxPolyDP。對每一行

  2. 查找角度以及拐角(相鄰線之間的角度)。

  3. 搜索箭頭使用上述標準角尖端。

  4. 現在,你有箭頭指針和相鄰的線(角),以這兩條線的結果作爲自己的方向,這只是加起來的角度。

另請參閱此link可能會對您有所幫助。

+0

所以我用我上面的貼,我運行下面的節目中的圖像: http://i.imgur.com/0myNfap.png 我得到了以下的輸出: HTTP://我.imgur.com/yxpqlz7.png 我不確定搜索箭尖的最佳方法嗎? – Knoose

+0

@Knoose使approxPolyDP()中的值ε更高,直到得到總點數7,因爲您的箭頭有7個角。 – Haris

+0

我結束了使用cv2.goodFeaturesToTrack()。我在箭頭的裁剪圖像上找到了7個興趣點。它工作得很好,因爲圖像的裁剪刪除了我的'道路',cv2.goodFeaturesToTrack()獲得了我需要的點。我最終創建了自己的算法來檢測方向,並且它的工作非常可靠。謝謝您的幫助! – Knoose