Creating a porosity map by interpolating between multiple overlapping grid squares
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
sgericeb
le 2 Juil 2020
Commenté : Image Analyst
le 28 Fév 2021
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.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/325543/image.png)
0 commentaires
Réponse acceptée
Image Analyst
le 2 Juil 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, []);
2 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Image Processing Toolbox dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!