Finding/calculating area after edge detection
5 次查看(过去 30 天)
显示 更早的评论
Hi, I am a new MATLAB user. I am working on this image . The objectives are: a) to separate/detect the droplets and ligaments, b) find out dimensions (centre, area, diameter for drops, length for ligaments) of drops and ligaments. To simplify, I am currently working on the drops only. I am done with the detection of drops.
I = imread('test_17.tif');
figure, imshow(I)
bw1 = im2bw(I, graythresh(I));
figure, imshow(bw1)
D = -bwdist(~bw1);
figure, imshow(D,[])
Ld = watershed(D);
figure, imshow(label2rgb(Ld))
bw4 = bw1;
bw4(Ld == 0) = 0;
figure, imshow(bw4)
mask = imextendedmin(D,2);
figure, imshowpair(bw1,mask,'blend')
D2 = imimposemin(D,mask);
Ld2 = watershed(D2);
bw5 = bw1;
bw5(Ld2 == 0) = 0;
figure, imshow(bw5)
bw6 = edge(bw5,'log'); %detect edges with Laplacian of Gaussian
figure, imshow(bw6)
bw7 = imfill(bw6,'holes');
figure, imshow(bw7)
Now, I am stuck with finding out the centres, areas and diameters of the all the drops. Also, any other suggestion to improve the code is welcome.
2 个评论
KALYAN ACHARJYA
2018-9-13
Can you attach the resultant image? Area: Just count the number of segmented pixels wrt image size?
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Segmentation and Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!