MATLAB Answers

Creating a porosity map by interpolating between multiple overlapping grid squares

10 views (last 30 days)
I have a binary image with black particles and white pore space. I am trying to observe the porosity variation across the image. To do this I have originally been using a square grid in Fiji and measuring the porosity (ratio of black to white pixels) in each grid. I have then been uploading these values to matlab as XYZ coordinates, with X and Y being the centres of each grid and Z being the porosity value. I have then interpolated between these values to produce a porosity map.
However, when using a single square grid, the porosity map is not very representative of the binary image because the grids are coarse. However, I cannot reduce the grid size due to theoretical reasons in what I am trying to do.
However, I have found that if I overlay multiple grids, but which are shifted to the right or downwards incrementally, then I can upload these new XYZ values to matlab and interpolate between them which produces a much better porosity map.
The issue is that I can't find any reference to this method anywhere and so does anyone know if this technique is used at all or in any literature? Also would interpolating between overlapping squares cause any issues because the porosity map produced using the overlapping squares looks good?
I have been searching the literature for what feels like an age looking for the answer to this question so I'd really appreciate any help.

  0 Comments

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 2 Jul 2020
Yes, it's not uncommon. Just call imfilter() or conv2() to sum up the number of white points at each point. You can adjust the window size according to how big you think the local neighborhood should be.
windowSize = 51;
kernel = ones(windowSize, windowSize) / windowSize^2;
outputImage = conv2(double(inputImage), kernel, 'same');
imshow(outputImage, []);

  0 Comments

Sign in to comment.

More Answers (0)


Translated by