MATLAB: Interpolation problem with interp2

interp2interpolationprecise point

Hi everyone!
I did some computations on a grayscale picture and I would like to interpolate some points in my matrix. My problem is that interp2 doesn't allow to do what I want to.
Let's say my matrix is im
im = [1 2 3; 4 nan 6; 7 8 9];
and when I do:
[colum row] = meshgrid(1:3,1:3);
colum_i = 2;
row_i = 2;
zi = interp2(colum, row, im, colum_i, row_i);
I would like that it interpoles the nan. Is there a way to redefine a point in the matrix instead of a point between the points of the matrix?
My picture is a 512×512 pixels and interp2 would be very useful and fast instead of computing for every point separately…
Thank you for yours answers.
Regards, D.

Best Answer

I suggest you consider John d'Errico's MATLAB File Exchange contribution inpaint_nans