2012-10-12 72 views
2

我正在驗證應用於2D圖像的圖像分割算法。該算法生成輪廓段,即在2D空間中形成自由曲線的一組連接像素。我們的想法是將這組像素與地面實況進行比較,在我的情況下是由專家手動追蹤的另一個輪廓段。表示這將是一個分割結果的圖像和相應的手冊(地面實況)分割如下:兩個開放輪廓的比較度量

我試圖認爲適當的比較度量來驗證分割結果。理想情況下,最好的度量將是每個片段上相應像素對之間的點對點歐氏距離,但是(如前圖所示),片段不具有相同的長度(即相差總像素數)所以像素與像素的比較必須被丟棄。

您能否提供我要驗證我的算法足夠的指標?感謝您的任何建議!

回答

1

對於在地面實況的每個像素,以在分割結果最近像素的距離。然後取所有地面像素的總和作爲總誤差。

這基本上是由距離加權的。如果您從結果中的像素開始,它將類似於精度。

+0

感謝Junuxx。我實現了一個類似的方法:對於分割結果中的每個像素,我計算了到地面實況曲線的最小距離。然後我將這組最小距離的最大值作爲比較度量。這被稱爲[豪斯多夫距離](http://en.wikipedia.org/wiki/Hausdorff_distance) – CodificandoBits

0

你可以將每個行成相等長度的n個分段,然後計算每個段和其上的其它線對之間的歐幾里得距離。

+0

由於兩條線(自由曲線)不具有相同的長度,然後除以成n段,當我將與段也不同,如果長度結束。當尺寸不一樣時,如何計算兩個這樣的片段之間的歐氏距離? – CodificandoBits

+0

其實我實現了一種類似於Junnux建議的方法,參見上文。 – CodificandoBits

+0

很高興你發現了一種可行的方法。爲了回答你的問題,段的大小不會影響之間的距離的計算。您可以選擇每個分段的中點,前面或後面,並計算它們之間的距離。關於Junnux答案,我會提醒一點的是,我不認爲它會爲匹配不同長度的線段提供任何錯誤。每個像素與最近的鄰居之間的距離爲0,但曲線不會相同。 – Hammer

1

如果曲線是封閉的,你可以計算曲線之間的面積。如果您可以確定哪些像素屬於某個線段,那麼就像計算2個像素組的一組一樣簡單。

下面是使用,我已經採用Matlab創建了一個例子:

enter image description here enter image description here

+0

曲線未關閉! – CodificandoBits