Changing image size with interp1()

1 visualización (últimos 30 días)
Quan Seah
Quan Seah el 30 de Mayo de 2018
Respondida: KSSV el 30 de Mayo de 2018
I am new to MATLAB so I am unfamiliar with many things. One of the tasks that was handed to me to complete was to change the size of the image using interp1(), I have previously asked the similar question and I am able to change my image size from 256x256 to 256x512. I have only succeeded in changing the image size for rows with the following codes:
data1 = imread('lighthouse_half.png');
%lighthouse_half
numcr = 512;
[m,n,p] = size(data1);
iwant = zeros(m,numcr,p);
xi = linspace(1,n,numcr);
for i = 1:m
for j = 1:p
T = interp1(1:n,double(data1(i,:,j)),xi);
iwant(i,:,j) = T;
end
end
iwant = uint8(iwant);
imshow(iwant);
I have been trying to figure how to change both rows and columns so that I get the image size of 512x512, can someone please help?

Respuesta aceptada

KSSV
KSSV el 30 de Mayo de 2018
data1 = imread('lighthouse_half.png');
%lighthouse_half
numcr = 512; numrr = 512 ;
[m,n,p] = size(data1);
% interpolation along column
iwant1 = zeros(m,numcr,p);
xi = linspace(1,n,numcr);
for i = 1:m
for j = 1:p
T = interp1(1:n,double(data1(i,:,j)),xi);
iwant1(i,:,j) = T;
end
end
[m,n,p] = size(iwant1);
% interpolation along row
iwant2 = zeros(numrr,numcr,p) ;
yi = linspace(1,m,numrr);
for i = 1:n
for j = 1:p
T = interp1(1:m,double(iwant1(:,i,j)),yi);
iwant2(:,i,j) = T;
end
end
iwant2 = uint8(iwant2);
imshow(iwant2);

Más respuestas (0)

Categorías

Más información sobre Denoising and Compression en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by