4
目前我正在開發javacv上的圖像處理項目。我必須在特定的多邊形內識別U形。如何使用opencv/javacv識別圖像中的U形狀?
這是兩種類型的圖像,我必須確定圖像是否在圖像中具有兩個U形或單個U形。我已經通過了許多教程,但我無法找到適當的指導方針來澄清這一點。所以請專家可以幫助澄清這個問題。它非常感謝,如果你可以提供一些使用opencv或javacv的代碼示例。
目前我正在開發javacv上的圖像處理項目。我必須在特定的多邊形內識別U形。如何使用opencv/javacv識別圖像中的U形狀?
這是兩種類型的圖像,我必須確定圖像是否在圖像中具有兩個U形或單個U形。我已經通過了許多教程,但我無法找到適當的指導方針來澄清這一點。所以請專家可以幫助澄清這個問題。它非常感謝,如果你可以提供一些使用opencv或javacv的代碼示例。
如果所有的圖像具有相似的圖案,只需使用的輪廓的邊界矩形的縱橫比(寬度/高度),以它們濾掉。
也就是說,如果你發現所有的邊界輪廓的矩形,外形具有接近1
但U形的ASPECT_RATIO將有超過10個
下面的ASPECT_RATIO是一個Python代碼:
import cv2
import numpy as np
img = cv2.imread('sofud.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(gray,127,255,1)
contours,hierarchy = cv2.findContours(thresh,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
for cnt in contours:
x,y,w,h = cv2.boundingRect(cnt)
if 10 < w/float(h) or w/float(h) < 0.1:
cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)
cv2.imshow('res',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
下面是結果:
您從哪個代碼行中選擇輪廓繪製矩形的乾草? – 2012-07-09 02:29:35
首先使用「boundingrect」找到輪廓的矩形參數。然後使用「矩形」 – 2012-07-09 04:24:30