Detecting pores on a rough surface

1 view (last 30 days)
himey
himey on 3 Jan 2014
Commented: himey on 3 Jan 2014
Hi, I'm hoping to calculate the number, size, and area of the pores in the picture below. Problems: 1. The surface is too rough that the Canny method detected lots of ridges that interfere with the pore ridge. 2. Many of the pores ridges are open, even after the imclose. 3. Some closed ridges are from protruding structure, not from pores, but the imfill still filled it. 4. The regions with intensity >70 are considered with more sample artifacts. Is there a way to do the processes in my code only on the regions with I<70.
I appreciate very much your help! Below is the code.
imdir = 'C:\Users\wkuo7\Documents\MATLAB\20130724\'; imfile1 = '401.tif'; Iori = imread([imdir, imfile1]); Iavg = wiener2(Iori,[4 4]); Ican = edge(Iavg, 'canny', (graythresh(K) * .03)); NHOOD=[0,1,0;1,0,1;0,1,0]; se = strel('arbitrary', NHOOD) Iclo = imclose(Ican,se); Ifil = imfill(Iclo, 'holes'); figure, imshow(Iori) figure, imshow(Ifil)

Answers (1)

Image Analyst
Image Analyst on 3 Jan 2014
Looks very tough. It's not so straightforward what a hole is. You might have to measure something else to characterize these textures. If you can't get imtophat() or imbothat() to work, then I'd do something else, like look at the entropy or PSD or something.
  1 Comment
himey
himey on 3 Jan 2014
Thank you, Image Analyst! I just quickly tried the imtophat(), but only a couple more pores are closed. The majority of the pores are still open and interfered with many edges. Maybe gradient filter is not a good approach for my picture? Your input is greatly appreciated!

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!