2014-01-12 44 views
0

今天我試了一下自己在c#中的角點檢測。 我在那裏添加了一個示例圖像。圖像呈黑白色,外形和內部形狀。角點檢測算法

example image

我只關心的外形,而不是內之一。試圖Harris角點檢測導致我一事無成,所以我想我可以把每個像素在一個簡單的兩INT結構類似:

struct coordinates 
{ 
    public int x, y; 
    public coordinates(int xx, int yy) 
    { 
     this.x = xx; 
     this.y = yy; 
    } 
}; 

而是試圖獲得最大和最小,最右側和左側三元組再次讓我失望並返回某物像(紅線連接upperleft,upperright和lowerleft):

example Image processed

我認爲這種情況是由於不完全的矩形形狀(左上角和下角被倒圓)和不均勻的形式(該右上角是正確的,但右下角在右下角3/4處結束)。

有關如何解決此問題的任何想法?使用左上角作爲非圓角對我來說會更好(更好),所以最後我在這個白色的形狀周圍有一個完整的矩形。

+0

你需要形狀的座標還是隻有形狀本身的座標? (=大綱) – wondra

+0

您正在使用[EmguCV](http://www.emgu.com/)還是正在實現自己的算法? – phyrox

+0

我使用我自己的實現,只需要形狀的角落的協調 – user3079834

回答

1

做一個hough變換,找到主導線並計算它們的交點。這會改善您的結果,儘管它不能保證找到的形狀包含全部白色像素。這是必需的嗎?