2015-11-05 761 views
1

我一直在研究opencv square樣本的變體來檢測矩形。它對於閉合的矩形工作正常,但我想知道我可以採用什麼方法來檢測具有開口的矩形,即缺角,線條太短。在OpenCV中檢測不完整的矩形(缺失的邊角/短邊)

我執行了一些擴大,它彌補了小差距,但不是這些大的差距。

我考慮使用凸包或邊界矩形來生成一個輪廓進行比較,但由於矩形的邊緣是斷開的,每個都會看作一個單獨的輪廓。

我認爲第一步是檢測哪些線是候選形成一個完整的矩形,然後執行某種線外推。這seems promising,但我矩形的邊緣不會完全水平或垂直。

我試圖發現這個圖像的三個最左邊的矩形:

image

+0

這些是兩個問題:1.檢測不完美線條的線段。 2.組線段可能以矩形結束。 – Micka

+0

您是否有處理檢測不完整線段的建議?我試過HoughLines/HoughLinesP,它似乎並不奏效,我認爲它們的目標是更完美的線條。我目前的思路是分析點數和某種區域的輪廓,以arcLength比率來猜測矩形的哪個「部分」是 – muscovy

+0

,您可以嘗試使用PCA的輪廓。但是對於連接的矩形拐角部分將會失敗......我喜歡RANSAC方法,但是您必須自己實現它。 – Micka

回答

0

也許本文感興趣? Rectangle Detection based on a Windowed Hough Transform

基本上,採取圖像的霍夫線變換。在(θ,ρ)空間中與線條有關的地方,你會得到最大值。數值越大,線越長/越直。也許只是爲了獲得最佳線路而設置一個門檻。然後,我們試圖尋找對它們是

1)平行的行:最大值出現在類似的2θ值

2)相似的長度:該最大值的值相似

3)正交於另一對線:θ值與其他對的θ值成90度

本文中還有一些細節,例如在滑動窗口中進行變換,然後使用錯誤度量來鞏固多場比賽。