2014-01-08 5 views
0

Я пытался увеличить изображение, используя метод репликации пикселей. В приведенном ниже коде есть «Предупреждение: изображение слишком велико, чтобы соответствовать на экране». Я не знаю, если это проблема с выходом. Результат полностью отображает что-то еще. Вот ссылка на выход ... https://www.dropbox.com/s/ixl80jwutra8e1a/Q.PNGMatlab Масштабирование с использованием репликации пикселей

Img = handles.Image; 
temp = double(imread(Img)); 
b=temp; 
[m,n,colormap]=size(b); 

%If RGB Image is given at Input 
if colormap==3 
x=b(:,:,1); 
y=b(:,:,2); 
z=b(:,:,3); 
end 

k=1; %Counter for Row and 
l=1; %Column replication 
f=2; %Replica factor 

for i=1:m %Loop for reading row and 
    for t=1:f %Row replication 

     for j=1:n %Loop for reading column and 
      for t=1:f %Column replication 

       if colormap==3 %If Image is RGB 
       c1(k,l)= x(i,j); 
       c2(k,l)= y(i,j); 
       c3(k,l)= z(i,j); 
       else %If Image is grayscale 
       c(k,l)=b(i,j); 
       end 
       l=l+1; 
      end 
     end 
     l=1; 
     k=k+1; 

    end 
end 

if colormap==3 %If Image is RGB 
    c(:,:,1)=c1; 
    c(:,:,2)=c2; 
    c(:,:,3)=c3; 
end 
axes(handles.axes2); 
imshow(c); 

Что именно проблема, есть ли выход?

+0

Только быстрый взгляд, но на первый взгляд, кажется, что вы делаете 'л = 1;' неправы место - не должно быть после цикла 'for t'? –

ответ

1

Вы получаете предупреждение, потому что imshow автоматически масштабирует изображения, чтобы они соответствовали экрану, если они два больших. И это говорит вам об этом.

Если вы хотите, чтобы заставить вывод масштабироваться 1: 1, вы можете использовать:

imshow(c, 'InitialMagnification', 100); 
Смежные вопросы