How can I find all zeros in a 2d matrix and change those values by interpolating with the closest available values ?

6 visualizzazioni (ultimi 30 giorni)
For example, A=

Risposta accettata

Image Analyst
Image Analyst il 8 Giu 2017
You could use regionfill(), if you have the Image Processing Toolbox, to do it in a single line of code:
outputArray = regionfill(inputArray, inputArray == 0);

Più risposte (1)

Walter Roberson
Walter Roberson il 7 Giu 2017
[gr, gc, gv] = find(A);
F = scatteredInterpolant(gr, gc, gv);
[br, bc] = find(~A);
replacements = F(br, bc);
A( sub2ind(size(A), br, bc) ) = replacements;

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by