2013-11-04 23 views
0

我正在嘗試調整大小並使用八度來旋轉圖像。但是,當我嘗試得到以下錯誤: 索引超過矩陣維...任何人看到我做錯了什麼?Octave處理圖像

I=imread('c:/cg/img/Lena.jpg'); % 128 x 128 uint 
I2=rgb2gray(I); 


alfa=.5; 

for i=1:round(256*alfa) 
    for j=1:round(256*alfa) 

    is=round(i/alfa); 
    js=round(j/alfa); 

    if (is<1) is=1; endif;  
    if (js<1) js=1; endif; 


I3(i,j)=I2(is,js); 

    end 
end 

imwrite(I3,"c:/cg/lenax0.5.jpg","jpg"); 



for i=1:256 
    for j=1:256 
    I4(i,j)=I3(257-j,i);   %90 
    I5(i,j)=I3(257-i,257-j);  %180 
    I6(i,j)=I3(j,257-i);   %270 
    end 
end 

I7=[I3 I4; I5 I6]; 
imshow(I7); 
imwrite(I7,"c:/cg/lena_rotate_90_180_270.jpg","jpg"); 

回答

1

發現錯誤在這裏我有錯誤的大小。

for i=1:256 
    for j=1:256 
    I4(i,j)=I3(257-j,i);   %90 
    I5(i,j)=I3(257-i,257-j);  %180 
    I6(i,j)=I3(j,257-i);   %270 
    end 
end 

我有錯的大小需要是

for I=1:128 ect... 
0

我無法理解您的代碼,但是,您做錯了什麼。您沒有使用image packageimrotateimresize的功能。在調用這些函數pkg load image之前,不要忘記加載圖像包。