10

私は医用画像セグメンテーションで作業しており、ファジィ連結性アルゴリズムをグラフカットと組み合わせたいと考えています。その背景は、背景と前景があいまいなつながりでセグメント化されますグラフカットアルゴリズムのためのシンクとソースとして、この種子を得るために自分のコードは、グラフカットするグラフカットセグメンテーションシードポイントでグラフカットを使用した画像セグメンテーション

FC=afc(S,K); %// Absolute FC 
u=FC>thresh; 
v=FC<thresh; 

s=regionprops(u, 'PixelIdxList'); %// listes de pixels de l´objet 
t=regionprops(v, 'PixelIdxList'); %// listes de pixels de l´arrière plan 
[a,b]=size(s); 
[w,c,z]= size(t) 

for i=1:a 
    for j=1:b 
     [y,x] = ind2sub(size(u), s(i,j).PixelIdxList); 
    end 
end 
for k=1:w 
    for d=1:c 
     [y1,x1] = ind2sub(size(v), t(k,d).PixelIdxList); 
    end 
end 

座標され、Iは、例えばFile Exchange

からアルゴリズムを使用しました私は定義できます

Cs=-log([y x]) 
Ct=-log([y1 x1]) 

が、問題は

答えて

5

私はgraph-に精通していないです、それは行列のサイズを超えてしまいます

u = double((Cs-Ct) >= 0); 
ps = min(Cs, Ct); 
pt = ps 

コードソースのこの部分のようなコスト関数からの情報を組み合わせる方法であります
GCMex matlab wrapper(適切な開示:このラッパーを実装しました)を使用した例を示します。もしiijj画素が(iijj隣接ため)接続されている方法も表すK(ii,jj)n画素とサイズn行列nKスパースマトリックスとサイズsize(S)の画像を持っていると仮定


また、前景ピクセルのマスクuと、ハード制約として扱う背景ピクセルのマスクvがあります。

まず、uv使用してデータ項を構築する:あなたは、データ・タームDcを見ることができるように

Dc = 1000*[u(:), v(:)]; %// assign very large cost for picking FG pixel to label zero and vice versa 

を、割り当てるコストとn -by-2配列であるラベルl(0か1つ)をDc(ii,l+1)に格納する。したがって、前景(u(ii)が1)のラベルの場合は、l=0というラベル(つまり背景)を割り当てます。支払う費用は1000です。バックグラウンドのピクセル(v(ii)は1)をフォアグラウンドに割り当てるのは同じです(つまり、l = 1)したがって、データ用語Dcは、間違ったラベルを取得するシードピクセル(前景または背景のいずれか)に非常に高いコストを与える。

GCMexを使用するRDERには、インストール手順をfollwし、それを動作させるためにそれをコンパイルする必要があること

gch = GraphCut('open'), Dc, [0 1; 1 0], K); 
[gch L] = GraphCut('expand',gch); 
gch = GraphCut('close',gch); 
L = reshape(L, size(u)); 
figure; imshow(L,[]); title('the resulting mask'); 

注グラフカットオブジェクトを構築します。

+0

あなたはソースとシンクにウェイトを分配する方法を詳しく教えてください。現在、maxValueからソースの値を減算してシンクの値を取得しますが、これは意味があります。 – ZdaR

+0

このリンクに従うと、インタラクティブグラフを簡略化して https://masterravi.wordpressという表記をしています。com/2011/05/24/interactive-segmentation-using-graph-cutsmatlab-code/ –

+0

@ZdaR「Dc」に関する私の更新をご覧ください。 – Shai

関連する問題