2011-07-14 22 views
8

誰もがセルをセグメント化し、平均 セル面積を計算するmatlabに関数を書く方法を知っていますwatershed algorithm? ご協力いただければ幸いです。ありがとうございました!ここでmatlabの流域アルゴリズム

は、酵母細胞

yeast cells

答えて

13

ここでは、流域を使用して画像を分割する方法の1つです。あなたはもっとたくさんのことができます(例えば、細胞核がまだ完成していない場合は2つの核を融合させるなど)が、以下の手順で最初のアイデアが得られます。

(1)細胞背景閾値、細胞核用閾値を決定

%# read image 
img = imread('http://i.stack.imgur.com/nFDkX.png'); 
%# normalize to 0...1 
imgN = double(img-min(img(:)))/(max(img(:)-min(img(:)))); 
th1=graythresh(imgN); 
th2 = graythresh(imgN(imgN>th1)); 

cellMsk = imgN>th1; 
nucMsk = imgN>th2; 

figure,imshow(cellMsk+nucMsk,[]) 

enter image description here

(2)(oversegmentationを避けるため)と最小値として核を課す原画像スムース

[xx,yy]=ndgrid(-5:5,-5:5); 
gf = exp((-xx.^2-yy.^2)/20); 
filtImg = conv2(imgN,gf,'same'); 

figure,imshow(filtImg,[]) 

filtImgM = imimposemin(-filtImg,nucMsk); 

enter image description here

(3)流域、マスク・セル、およびディスプレイは

ws = watershed(filtImgM); 
ws(~cellMsk) = 0; 

lblImg = bwlabel(ws); 

figure,imshow(label2rgb(lblImg,'jet','k','shuffle')); 

enter image description here

(4)今あなたがしたい統計情報を抽出するために標識画像上REGIONPROPSを使用することができます。

+0

ありがとうございました!!!! – Glove

0

の画像であるブログ「画像処理上のスティーブ上のセルセグメンテーションを画像処理ツールボックスとthis postwatershedを参照してください。

関連する問題