如何在不使用matlab imresize函数的情况下在matlab中放大图像

如何在不使用matlab imresize函数的情况下在matlab中放大图像,matlab,Matlab,我没有得到正确的结果,请分享你的代码 enter code here a=imread('rice.png') [rows,columns]=size(a); i=1; j=1; c=zeros(rows*4,columns); for x=1:2;rows for y=1:2:columns c(i,j)=a(x,y); j=j+1; end i=i+1; j=1; end figure,imshow(a); figure,imshow(c/255); figure,imagesc(c),co

我没有得到正确的结果,请分享你的代码

enter code here
a=imread('rice.png')
[rows,columns]=size(a);
i=1; j=1;
c=zeros(rows*4,columns);
for x=1:2;rows
for y=1:2:columns
c(i,j)=a(x,y);
j=j+1;
end
i=i+1;
j=1;
end
figure,imshow(a);
figure,imshow(c/255);
figure,imagesc(c),colormap(gray);

我正在使用此代码,因为它没有给我正确的结果

您应该检查原始图像的类型,并需要创建相同类型的图像。下面的代码将帮助您理解扩展图像背后的逻辑。 假设图像的(1,1)像素值为128,在这里我们将该值写入(1,1)、(1,2)、(2,1)、(2,2)像素


看起来您需要使用调试器逐步完成脚本,以便在值发生变化时看到它们,并从图像的大小
c
开始计算它们何时偏离预期值。如果您从100x100图像开始,是否真的要将大小调整为400x100图像?对于x=1:2,我只想将原始大小<代码>的大小增加一倍;行有输入错误,您需要使用
,而不是
。它仍然不工作:(@Cris)Luengo@WajihaAslamMalik如果要将大小加倍,请首先创建一个比原始图像大小加倍的新图像。这就是
c=zeros(…)
在脚本中有什么作用?没有。所以请修复这一行,然后转到下一行。这是否符合您的要求?没有,所以请修复它,然后继续。我没有投反对票,但我同意这不是一个好答案。您发布的代码是一个糟糕的MATLAB代码示例,并且没有解释它为什么工作。请注意,您不需要循环MATLAB为您在这里所做的工作提供了支持,并且代码在没有循环的情况下会更加高效和易于阅读。请尝试以下操作:
newA(1:m:end,1:2:end)=A
clear;clc;close all;
A=imread('rice.png'); % read the image
[rows, columns]=size(A); % get size of the image
m=2;      % Expanding ratio (you can change that value to whatever you want)
newA=zeros(rows*2, columns*2,'uint8'); %new created image should be in same
for i=1:columns                        %type with original image.
    for j=1:rows                       
        newA(i*m,j*m)=A(i,j);          % Writing pixel values on (2,2),(2,4),(4,2),(4,4),...
        newA((i*m)-1,(j*m)-1)=A(i,j);  % Writing pixel values on (1,1),(1,3),(3,1),(3,3),...
        newA((i*m),(j*m)-1)=A(i,j);    % Writing pixel values on (2,1),(2,3),(4,1),(4,3),...
        newA((i*m)-1,(j*m))=A(i,j);    % Writing pixel values on (1,2),(1,4),(3,2),(3,4),...
    end
end