Ktoś wie, jak napisać funkcję w Matlab, aby podzielić komórki na segmenty i obliczyć średnią powierzchnię komórki przy pomocy watershed algorithm? każda pomoc byłaby bardzo cenna. Dziękuję Ci!algorytm zlewni w matlab
Oto obraz komórek drożdży
Ktoś wie, jak napisać funkcję w Matlab, aby podzielić komórki na segmenty i obliczyć średnią powierzchnię komórki przy pomocy watershed algorithm? każda pomoc byłaby bardzo cenna. Dziękuję Ci!algorytm zlewni w matlab
Oto obraz komórek drożdży
Oto jeden ze sposobów segmentowania obrazu za pomocą działu wodnego. Jest jeszcze wiele rzeczy, które możesz zrobić (np. Połączyć komórki z dwoma jądrami, jeśli jeszcze nie ukończyły one cytokinezy), ale poniższe kroki powinny dać ci pierwszy pomysł.
(1) Określić próg komórek tła próg komórek jądra
%# 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,[])
(2) Gładkie raw (w celu uniknięcia oversegmentation) i nałożyć jąder jako minimum
[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);
(3) komórki Watershed, maski, i wyświetlacz
ws = watershed(filtImgM);
ws(~cellMsk) = 0;
lblImg = bwlabel(ws);
figure,imshow(label2rgb(lblImg,'jet','k','shuffle'));
(4) Teraz można użyć REGIONPROPS na znakowanym obrazek, aby wyodrębnić statystyk chcesz.
dziękuję bardzo! – Glove