Resizing images using interp1()

11 vues (au cours des 30 derniers jours)
Quan Seah
Quan Seah le 8 Mai 2018
Commenté : Dingbang Liang le 25 Mai 2018
So I have got this image that I am trying to resize which I have already attached. The requirement for me is to resize the image without using the functions imresize() or immse() but use interp1(). And I have no clue where exactly to begin.
  1 commentaire
Dingbang Liang
Dingbang Liang le 25 Mai 2018
Did you figure out how to enlarge the column?

Connectez-vous pour commenter.

Réponse acceptée

KSSV
KSSV le 8 Mai 2018
I = imread('lighthouse.png') ;
N = 1000 ; % interp1 along row
[m,n,p] = size(I) ;
iwant = zeros(m,N,p) ;
xi = linspace(1,n,N) ;
for i = 1:m
for j = 1:p
T = interp1(1:n,double(I(i,:,j)),xi) ;
iwant(i,:,j) = T ;
end
end
iwant = uint8(iwant) ;
imshow(iwant)
  3 commentaires
Quan Seah
Quan Seah le 8 Mai 2018
I realized that your code only interp1 along row, what if i want to interp1 along columns, since the code you showed me only changes the width not the length.
Image Analyst
Image Analyst le 8 Mai 2018
For each pixel you need to call it twice, once with the top and bottom neighbors, and once with the right and left neighbors.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by