whats wrong with this nearest neighbor zoom code

1 次查看(过去 30 天)
I think every thing is ok but the answer is not correct
I=imread('C:\Users\AliReza\Desktop\B.jpg');
for Channel = 1 : 3
I1 = I(:,:,Channel);
S=2 ;
[M , N]=size(I1);
M2=S*M;
N2=S*N;
I2=zeros(M2 , N2);
for i =1:M2
for j = 1:N2
x =i/S;
y=j/S;
x2=round(x);
y2=round(y);
if (x2<1)||(x2>M)||(y2<1)||(y2>N)
I2(i , j)=0;
else
I2(i,j)=I1(x2 ,y2);
end
end
I3(:, :, Channel) = I2;
end
imshow(I3,[])
  1 个评论
John D'Errico
John D'Errico 2016-10-22
What do you think is incorrect? Why do you think there is a problem? Perhaps you need to either learn to use the debugger, or you need to give more information if you seriously expect an answer.

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2016-10-23
Change
I2=zeros(M2 , N2);
to
I2 = zeros(M2 , N2, class(I));

更多回答(1 个)

Image Analyst
Image Analyst 2016-10-22
Not sure what "is not correct" means. Perhaps you'd like to see the Mathworks demo on zooming an image, attached.
Or perhaps you want to use imresize() or imcrop().
  2 个评论
alireza kooshafar
alireza kooshafar 2016-10-23
dear image Analyst i write the code for gray and it works but when i want to do the same with rgb images just with adding channel i don't get the last result as i expected
Image Analyst
Image Analyst 2016-10-23
Looks like you've accepted Walter's answer so I assume you're all set now. Write back if that's not the case.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Visual Exploration 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by