2011-10-04 31 views
2

我試圖找到由兩個大致垂直的線段形成的角落,而不是由Shi-Tomasi或OpenCV中提供的Harris角點檢測器檢測到的所有可能的角點。如何在使用OpenCV的拐角檢測中指定閾值角度?

例如:

000000000000000110 
000000000000001100 
000000000000011000 
000000000000110000 
000000000001100000 
111111111111111111 
000000000000000000 
000000000000000000 

喜歡的東西上面會產生一個角作爲必需的 - 兩條線足夠接近垂直。

然而,這裏就是我試圖避免:

000000000000000000 
000000000000001111 
000000000011110000 
111111111100000000 
000000000000000000 

這裏的線是絕對不會接近垂直但沒有參數來指定閾值角度探測器。有什麼辦法可以使用OpenCV來實現這個嗎?如果不是,那麼指出如何使用C/C++從頭開始編寫代碼的資源將非常有用。

更多細節: - 從這個paper的「角點檢測」部分 此上前試圖實現脫機草圖解釋。

回答

1

圖像中是否有很多這樣的線/角?我可以想到的一件事是嘗試Hough transform首先獲得所有線,然後檢查線對之間的角度。

+0

我試過了,但是有很多直線段以直角連接一個圓的情況(我確切的目標不是在鏈接的紙上) – AruniRC

+0

這篇論文所做的幾乎和我所描述的一樣 - 找到直線線,然後通過檢查它們之間的角度找到線相交的角落(不同的是他們使用Canny邊緣檢測和輪廓來查找直線)。你究竟在做什麼 - 在論文中實現這個方法,或者以你自己的方式做事情?後者實際上是 – misha

+0

。試圖修改現有的最小角點特徵值拐角檢測器,這些檢測器更加健壯 - 包括程序中的角度子句。仍在努力。霍夫在這種情況下給出了太多的誤報或虛線。 – AruniRC