2014-03-18 255 views
1

我在高中,我正在開發一個項目,以構建一個可讓用戶掃描名片的iOS應用程序,目前我正在開發卡上的邊緣檢測。我相信我的工作正常,它正在繪製卡的輪廓和其他一些陰影等。基於最大四邊形輪廓的裁剪圖像OpenCV

這裏是我掃描時得到的示例圖像,我應該可以轉換爲灰度,我也會這樣做。

我怎樣才能找到最大的四邊形和裁剪我的形象,只包括卡?我所有的輪廓都存儲在一個vector<vector<cv::Point> >綠線似乎是一個我很感興趣的

enter image description here

回答

0

要找到你可以只遍歷所有,並檢查它們的尺寸最大的四邊形/區。

該投影可以通過查找findHomographywarpPerspective完成。您將需要四邊形的四個角點和再投影中的四個對應點(即圖像的角落)。

0

這並不直接回答這個問題,但是在Python,找到最大的輪廓,你會做這樣的事情:

contours, hierarchy = cv2.findContours(image, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 
contours.sort(key=cv2.contourArea, reverse=True) 

cv2.contourArea是計算輪廓 地區的拉姆達reverse = True:降序(最大的第一個)

那麼等高線的第0個元素就是最大的等高線。借鑑:

cv2.drawContours(image, contours, 0, (255, 0, 0), 2) 
+0

感謝您的支持。我沒有意識到這種方法,對我的問題會很有幫助。 –