Changing image size with interp1()
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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?
0 Kommentare
Akzeptierte Antwort
KSSV
am 30 Mai 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);
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!