如何使用OpenCV從圖像中檢測矩形或五邊形?我有名片的照片,我必須檢測它們。我試過HoughLinesP()
函數,但它只是查找線條。OpenCV - 矩形或五邊形的檢測
我必須檢測圖片上方的形狀並擴展圖像以顯示矩形的相交點。
如何使用OpenCV從圖像中檢測矩形或五邊形?我有名片的照片,我必須檢測它們。我試過HoughLinesP()
函數,但它只是查找線條。OpenCV - 矩形或五邊形的檢測
我必須檢測圖片上方的形狀並擴展圖像以顯示矩形的相交點。
你可以按照下面的步驟:
查找使用findContours
圖像中的輪廓。
執行approxPoly
以獲取圖像中存在的所有輪廓的多邊形形狀。
檢查逼近輪廓尺寸(邊數在多邊形):
如果邊的數目爲4 =>矩形
如果邊的數目爲5 =>五角
的代碼是蟒蛇,但應該很容易轉換爲C++:
import cv2
gray = cv2.imread('img.png',0)
ret,thresh = cv2.threshold(gray,127,255,1)
contours,h = cv2.findContours(thresh,1,2)
for cnt in contours:
approx = cv2.approxPolyDP(cnt,0.01*cv2.arcLength(cnt,True),True)
if len(approx)==5:
print "pentagon"
elif len(approx)==4:
print "rectangle"
關於如何檢測圖像中的矩形的很好的例子。檢查這link
_「和它的發現只是線」_這是線的Hough變換的目的。請顯示一些圖像和一些代碼,並查看[問] – Miki