Particle distribution of given image
6 views (last 30 days)
Show older comments
Hello I need to distinguish three elements of this concrete picture. 1.LECA 2.Crushed Aggregate 3.Cement Paste.
I need their area distribution. I tried to segment and filter but I couldn't handlee it. I need an approximate result.
0 Comments
Answers (2)
Image Analyst
on 9 Mar 2023
This is a very difficult problem. I doubt thresholding would work great but you can try the Color Thresholder on the Apps tab of the tool ribbon. If color alone is not enough to distinguish regions then you might have to add in other things like texture, stdfilt
It's a generic, general purpose demo of how to threshold an image to find blobs, and then measure things about the blobs, and extract certain blobs based on their areas or diameters.
If you know that a picture definitely has all 3 materials in it you can use k-means, or linear discriminant analysis on the image. Or if you can hand pick some samples then you can try KNN. I'm attaching demos for those you can adapt. I doubt any of them will be great but it's worth a try. Otherwise you could always try hand tracing the regions -- might not be acceptable if you have more than 100 images though. I'm attaching some drawing/masking demos also.
3 Comments
Image Analyst
on 10 Apr 2023
kmeans is not rubust for all area fractions. For example if there is none of a particular class there, it will still "make up" one because you're forcing it to have 3 classes. Discriminant analysis might be better -- did you try that demo? Or you can hand trace several regions in each class and then use the Classification Learning app to try out lots of different classifiers and pick the best one.
Jasvin
on 8 Mar 2023
Unless you have any training data available using which you can create a proper model explicitly built to identify the three regions, you'll have to go for Image Processing-based Image Segmentation or Unsupervised Learning
Here's the Discovery page for Image Segmentation,
You've already mentioned that you've tried out Image Segmentation and Filtering but perhaps there's a method here that you've missed out on.
And here's the Discovery page for Unsupervised Learning,
Here you can hope that some clustering algorithm like K-means is able to cluster as per your requirements.
And one final technique would be to label the regions manually in each image to obtain a training dataset on which you can apply any of the state of the art DL algorithms. MATLAB even helps with you that!
2 Comments
Jasvin
on 9 Mar 2023
Good luck with that Furkan and if you feel that the answer was sufficient for your task then you can also mark it as the accepted answer.
See Also
Categories
Find more on Discriminant Analysis in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!