Effacer les filtres
Effacer les filtres

Exclude central pixel from sliding mean calculation of surrounding pixels in a matrix

1 vue (au cours des 30 derniers jours)
I have got a matrix (M) where I need to calculate the average of the surrounding (3x3) pixels for each pixel, excluding the central one.
I have tried colfilt, but this calculates the mean including the central pixel:
avg = (colfilt(M,[3 3],'sliding',@nanmean));
What I need to do is to exclude the central pixel of each 3x3 matrix from the mean calculation, and assign to that central pixel the value of the average of the surrounding 8 pixels. Schematically:
Any help would be massively appreciated!

Réponse acceptée

Image Analyst
Image Analyst le 18 Jan 2023
Try setting the central pixel of the kernel to 0.
kernel = ones(3, 3) / 8;
kernel(2, 2) = 0;
avg = conv2(M, kernel, 'same');

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by