[英]Algorithm for least cost image segmentation
我很難找到一種算法以最小的成本解決圖像分割問題。 圖像的成本是通過以下方式計算的:
第一個平面中像素的權重+第二個平面中像素的權重+連接來自不同平面的像素的邊緣的權重。 (如果兩個像素在同一平面上,則不計算連接它們的邊緣的成本)
我的問題的輸入遵循以下模式:
兩個數字,第一個數字表示行數,第二個數字表示列數
5 5
第一個計划(P)上像素的權重 :
8 7 9 9 7
6 2 2 8 7
9 1 2 1 8
2 1 3 1 7
1 3 2 1 9
第二個平面圖(C)上像素的權重 :
2 1 2 3 2
1 9 9 1 3
1 7 7 9 3
8 7 9 7 2
7 9 8 9 1
水平連接像素的邊緣的權重 。
8 9 7 6
1 9 0 8
1 8 9 2
8 7 9 1
9 8 7 2
垂直連接像素的邊緣的權重 。
8 2 1 7 9
7 8 7 1 8
2 8 7 7 8
9 7 8 9 8
目的是找到成本最低的分割並返回一個矩陣,該矩陣顯示哪些像素屬於第一和第二計划。
在這種情況下的輸出:
57
C C C C C
C P P C C
C P P P C
P P P P C
P P P P C
在我的課堂上,我的老師告訴我們,埃德蒙·卡普斯(Edmund-Karps)將解決此問題,但我看不到如何在我們希望找到最大通量的情況下對該問題進行建模。
這是一個經典的最大流量問題。 將每個像素視為一個節點。 創建兩個新節點S
和T
對於每個像素x
,添加成本等於(P)中x
權重的有向邊(S, x)
)。 類似地,添加成本等於(C)中x
權重的有向邊(x, T)
)。 最后,使用給定的邊緣權重在相鄰像素之間添加雙向邊緣。
然后,您可以證明此圖中的任何S
- T
剪切都對應於圖像分割。 特別是,這種切割有3種邊緣:
S
和像素x
之間的邊緣,對應於將x
放入平面(P) x
和T
之間的邊緣,對應於將x
放入平面(C) x
和y
之間的邊緣,它們對應於平面之間的邊緣。 因此,此圖中的最小剪切精確地對應於最佳圖像分割。
通過最小割最大流量定理,可以使用最大流量算法(例如Edmonds-Karp)找到最小割。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.