# Enlarging an image with spline interpolation

11 views (last 30 days)
T.K on 28 Oct 2020
Edited: Mehri Mehrnia on 13 Jun 2022
I want to enlarge the number of pixels of the input image using spline interpolation. Please tell me how.

KSSV on 28 Oct 2020
I = imread("image.jpeg") ; % assuming image to m*n
I=rgb2gray(I);
[m,n] = size(I) ;
x = 1:n ;
y = 1:m ;
% Inteprolate to double
xi = linspace(1,n,2*n) ;
yi = linspace(1,m,2*m) ;
I = double(I) ;
I1 = zeros(m,2*n) ;
% Row wise inteprolation
for i = 1:m
I1(i,:) = spline(x,I(i,:),xi) ;
end
Inew = zeros(2*m,2*n) ;
% Column wise interpolation
for j = 1:2*n
Inew(:,j) = spline(y,I1(:,j),yi) ;
end
Inew = uint8(Inew) ;
figure
imshow(Inew)
##### 2 CommentsShowHide 1 older comment
Mehri Mehrnia on 13 Jun 2022
Edited: Mehri Mehrnia on 13 Jun 2022
main problem of this is it does not preserve image size, I mean the size of primary matrix

Mehri Mehrnia on 13 Jun 2022
Hi,
I really appreciate this Q/A, helped me.
I have a countour which is a complex shape(left atrial of heart). I want to select some points(control ones) to dilate or erode the shape? any idead?
Image Analyst on 13 Jun 2022
Maybe the attached demos???
Otherwise start a new question and attach your image and data and code after you read this:

### Categories

Find more on Splines in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by