2013-08-27 9 views
5

Mam problem z oddzielaniem komórek w obrazach mikroskopowych. Kiedy stosuję przekształcenie działu wodnego, kończę przecinanie komórek na wiele części, a nie tylko ich rozdzielanie na granicy/minimum.Obraz nadpowierzchniowy

Używam filtra bpass od http://physics.georgetown.edu/matlab/code.html.

bp = bpass(image,1,15); 
op = imopen(bp,strel('ball',10,700)); 
bw = im2bw(bp-op,graythresh(bp-op)); 
bw = bwmorph(bw,'majority',10); 
bw = imclearborder(bw); 
D = bwdist(~bw); 
D = -D; 
D(~bw) = -Inf; 
L = watershed(D); 
mask = im2bw(L,1/255); 

Wszelkie pomysły będą mile widziane! Możesz zobaczyć, że moje komórki są zbyt daleko rozdzielone w ostatecznej masce.

Oto rodzaj obrazu, który próbuję przełamać. Jest to obraz 16-bitowy, więc wygląda na czarny.

Starting fluorescent image

końcowe maski obrazu:

After filters and masking the cells

że oddziela komórki ręcznie tutaj:

Manually segmented image

+1

Dla tych z nas, którzy nie są biologami, być może można wskazać, gdzie znajdują się komórki. Widzę wiele elementów, ale niektóre są oddzielone tylko jednym pikselem, a niektóre kilkoma. Czy wszystkie są tą samą komórką, czy też w pobliżu znajdują się skupiska komórek? – paddy

+0

@paddy Oddzieliłem komórki na czerwono. To pomaga? – Ben

Odpowiedz

2

Znalezienie centra Komórki powinny być stosunkowo prosta : znalezienie lokalnego maksimum intensywności. Wykorzystując te punkty jako nasiona do działu wodnego, przydatne może okazać się this tutorial.

Niektóre operacje morfologiczne, które mogą okazać się użyteczne, to:
- imimposemin - wymuszenie punktu początkowego jako lokalnego min podczas obliczania przekształcenia działu wodnego.
- imregionalmax - znajdowanie lokalnych maksimów obrazu intensywności.

+0

Dzięki temu wypróbuję! – Ben