Watershed segmentation in C. elegans

8 次查看(过去 30 天)
Hi there,
I have an image with two nematodes joined. I want to apply watershed in order to separate their binary images, but I can't achieve a watershed segentation...
The code I have tryied is the next:
I_celeg_3 = imread("https://i.ibb.co/TTpQ6Ft/OLYMPUS-DIGITAL-CAMERA.jpg");
I_celeg_3 = rgb2gray(I_celeg_3); I_celeg_3 = imadjust(I_celeg_3);
%I_celeg_3 = medfilt2(I_celeg_3);
imshow(I_celeg_3)
celeg_STD_adj_BW_unique = bwpropfilt(celeg_STD_adj_BW, "Area", 1, "largest");
imshow(celeg_STD_adj_BW_unique)
I_celeg_3_BW = ~imbinarize(I_celeg_3);
[m_ult, ~] = size(I_celeg_3); m_ult = m_ult / 300 ; I_celeg_3_BW = bwareaopen(I_celeg_3_BW, m_ult);
imshow(I_celeg_3_BW)
% Close IMAGE MORPHOLOGY
SE = strel("disk", 10);
I_celeg_3_BW = imclose(I_celeg_3_BW, SE);
imshow(I_celeg_3_BW)
I_celeg_3_BW = bwareaopen(I_celeg_3_BW, 800);
I_celeg_3_BW = imfill(I_celeg_3_BW, "holes");
I_celeg_3_BW = imclearborder(I_celeg_3_BW);
I_celeg_3_BW = bwpropfilt(I_celeg_3_BW, "Area", 1, "largest");
imshow(I_celeg_3_BW)
d = bwdist(~I_celeg_3_BW);
d = imcomplement(d);
imshow(d, [])
dHmin = imhmin(d, 5);
bisonSep = watershed(dHmin);
imshow(bisonSep, [])
bisonSep(~dHmin) = 0;
imshow(bisonSep,"DisplayRange",[])
bisonOverlay = labeloverlay(I_celeg_3, bisonSep);
imshow(bisonOverlay)
Thnk you for reading

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Computer Vision with Simulink 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by