2D interpolation
ZI = mirt2D_mexinterp(Z,XI,YI) interpolates 2D image Z at the points with coordinates XI,YI. Z is assumed to be defined at regular spaced points 1:N, 1:M, where [M,N]=size(Z).
If XI,YI values are outside the image boundaries, put NaNs in ZI.
The function is similar to Matlab's native
ZI = INTERP2(Z,XI,YI,'linear',NaN),
but is much master. If Z is vector valued 2D image (3D array), then iteratively interpolates Z(:,:,1), Z(:,:,2),Z(:,:,3),.. etc. This works faster than to interpolate each image independently, such as
ZI(:,:,1) = INTERP2(Z(:,:,1),XI,YI);
ZI(:,:,2) = INTERP2(Z(:,:,2),XI,YI);
ZI(:,:,3) = INTERP2(Z(:,:,3),XI,YI);
The extra speed gain is from the precomputation of coefficients for interpolation, which are the same for all images. Interpolation of a set of images is useful, e.g. for image registration, when one has to interpolate image and its gradients or for vector valued images such as RGB.
Limitations: only works for images on a regular grid, and only with linear interpolation method.
Don't forget to compile first:
mex mirt2D_mexinterp.cpp
Enjoy! See more at my homepage:
https://sites.google.com/site/myronenko/
Cita come
Andriy Myronenko (2024). 2D interpolation (https://www.mathworks.com/matlabcentral/fileexchange/24183-2d-interpolation), MATLAB Central File Exchange. Recuperato .
Compatibilità della release di MATLAB
Compatibilità della piattaforma
Windows macOS LinuxCategorie
- MATLAB > Mathematics > Interpolation >
- MATLAB > Mathematics > Interpolation > Interpolating Gridded Data >
Tag
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Scopri Live Editor
Crea script con codice, output e testo formattato in un unico documento eseguibile.