10

Tıbbi görüntü segmentasyonunda çalışıyorum ve bulanık kesinlik algoritmasını grafik kesimle birleştirmek istiyorum, buradaki fikir fuzzy bağlılık ile görüntüyü bölümlere ayırmak ve ön plan kullanılacak grafik kesme algoritması için lavabo ve kaynak olarak, bu, bir örneğin File ExchangeTohum segmanlı grafik kesimi kullanarak görüntü segmentasyonu

bir algoritma kullanılabilir grafik kesme bölütleme

grafik kesim için
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çin koordinatları tohum elde etmek için zaman kodu

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

ama sorun

cevap

5

Ben grafiklerle aşina değilim o matris boyutunu aşacaktır

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

kod kaynağının bu parçası gibi maliyet fonksiyonlarının bilgilerini birleştirip nasıl
'a bağlandığınız FEX uygulamasından kestim ancak GCMex matlab wrapper'u kullanarak bir örnek göstereceğim (doğru açıklama: Bu sarıcıyı uygulamıştım).

Eğer n piksel ve Kii ve jj piksel bağlanır ne kadar iyi temsil eden K(ii,jj) ile -by- n boyutu n bir seyrek matris boyutunda size(S) bir görüntü (ii ve jj komşu) varsayarsak.
Ayrıca, önplan piksellerin bir maske u ve sert kısıtlamalar olarak ele alınacak bir arka plan piksel maskesi v var.

İlk olarak, u ve v kullanan veri terimi oluşturmak: veri-terimi Dc görüldüğü gibi

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

, atama maliyeti ile n -by-2 dizi etiket l (0 ya da bir) piksel iiDc(ii,l+1)'da saklanır. Bu nedenle, ön planda pikseller için (u(ii) 1'dir) l=0 (yani arka plan) etiketini atayarak ödeme yaptığınız maliyet 1000'dir. Aynı şey arka planda pikseller için de geçerlidir (v(ii) 1'dir) ön plana atayarak (yani, l = 1) maliyet 1000'dir. Bu nedenle, Dc veri terimi, yanlış pikseli almak için tohum piksellerine (ön plan veya arka plan) çok yüksek maliyet verir.

bir grafik kesimli nesneyi GCMex kullanmak rder içinde kurulum talimatları hakkında bilgi edinebilmek ve o iş için derlemek için gereken


Not

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'); 
Construct.

+0

Ağırlıkları, kaynak ve Lavabo'ya nasıl dağıtacağınızı detaylandırır mısınız? Şu anda kaynağın değerini maxValue'dan çıkartıp, lavabonun değerini almak için, bu mantıklıdır. – ZdaR

+0

bu bağlantıyı takip edin interaktif grafik kesim https: //masterravi.wordpress.com/2011/05/24/etkileşimli-segmentasyon-kullanarak-grafik-cutsmatlab-kod/ –

+0

@ZdaR lütfen 'Dc' ile ilgili güncellemeye bakın. – Shai

İlgili konular