The exact difference between background and foreground
Ältere Kommentare anzeigen
Hi all I want to obtain background and foreground difference exactly. From shown image you see i wnat to get from images the all particles like figure. The original image like this and i write this code but it doesnt work fine. What is your suggestions new filter design or something helpful. Because after this process i want to take circular(nearly) particles from these images(maybe tolerance band). Here is the starting code for background foreground difference
% imshow(c8);
I=c7(1:420, 1:712);
subplot(2,2,1);
imshow(I(1:420, 1:712));
Iblur1 = imgaussfilt(I,1);
subplot(2,2,2);
imshow(Iblur1);
background = imopen(Iblur1,strel('disk',3));
I2 = I - background;
subplot(2,2,3);
imshow(I2);
I3 = imadjust(I2);
subplot(2,2,4);
imshow(I3);
The original image untitled one, and after background foreground particle exact definition i want to find these high circularity particles.
Akzeptierte Antwort
Weitere Antworten (2)
Image Analyst
am 22 Apr. 2016
1 Stimme
It looks like you can threshold either the original image and/or an image you get from stdfilt().
Then ask for the area and perimeter and compute the circularity = 4*pi*area/perimeter^2. Look for blobs where the circularity is high, say more than 0.7 or so.
See my Image Segmentation Tutorial for more help: http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862
8 Kommentare
Image Analyst
am 24 Apr. 2016
Try casting original to double(), though I don't think it should be necessary. Then display with [] in imshow():
newone = stdfilt(double(original));
imshow(newone, []);
ali
am 24 Apr. 2016
Image Analyst
am 24 Apr. 2016
Yes, you undoubtedly have problems. Not only is there extremely low contrast with respect to the noise, but your blobs are pretty much all connected together. After noise reduction and thresholding, you may need watershed. See Steve's blog: http://blogs.mathworks.com/steve/2013/11/19/watershed-transform-question-from-tech-support/
ali
am 24 Apr. 2016
Bearbeitet: Walter Roberson
am 25 Apr. 2016
Image Analyst
am 24 Apr. 2016
After you split apart with watershed (like Steve's blog in the link I just gave in my last comment shows), then compute the area and perimeter and possibly solidity with regionprops(). Then compute the circularity and see which particles are circular or convex enough for you to consider that they're "circles."
Image Analyst
am 26 Apr. 2016
I'm sorry that this project would take me more than the few minutes I'm able to donate to questions. I'm not even sure what you want, and if what you say you want is really what you need. I'd need to devote a ton more time into figuring that out and developing an algorithm for it and I just can't spend that much time. This is what I do all day at work for my own projects and so I have very little time for others - usually just a few minutes per question. Good luck though.
ali
am 25 Apr. 2016
0 Stimmen
Kategorien
Mehr zu Image Arithmetic finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!