Image processing: Is there a way to edit pixels based on neighbouring adjacent pixels?
2 views (last 30 days)
Show older comments
Wasgeht Siedasan
on 17 May 2020
Commented: Wasgeht Siedasan
on 18 May 2020
Hi, I'm doing some image processing with CT Scans and i want to separate the 3 main components sand, empty, calcite precipitation
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/293674/image.png)
Now, i used multithresh to convert it to RGB with 3 colours to visualize it and count the different colour pixels to calculate Area percentage of the components.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/293675/image.png)
This is not optimal yet, because there are a lot of small red islands of calcite being misidentified in the middle of the yellow sand grains. I tried to remedy that by gaussian smoothing of the original (result below)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/293676/image.png)
This is still not optimal, and I'd rather use something like bwareaopen (if there is something like that with RGB) to remove small 1or 2-pixel disturbances surrounded by pixels of another colour, or edit pixels based on surrounding pixels, so let's say if there is 6 of the 8 surrounding pixels of a different colour, the pixel is converted into that colour.
Is it possible to do that or to solve this in a different way? Use another kind of smoothing maybe?
0 Comments
Accepted Answer
Image Analyst
on 17 May 2020
Edited: Image Analyst
on 17 May 2020
Yes, you can first get a mask of the sane that has blobs with the small holes (of calcite or whatever) you want to get rid of. Let's say the holes you want to get rid of have an area of 9 pixels or smaller, and if it's a hole 10 or larger than that you want to keep it. Then you get your binary image of just one class first, say, sandMask, then
% Only retain holes 10 pixels or bigger.
onlyBigBlobs = ~bwareaopen(~sandMask, 10);
More Answers (0)
See Also
Categories
Find more on Convert Image Type 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!