我正在尝试使用八度音调调整大小并旋转图像。但是,当我尝试得到以下错误: 指数超过矩阵维度......任何人都能看到我做错了什么?
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");
答案 0 :(得分: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...
答案 1 :(得分:0)
我无法理解你的代码但是,你做错了什么。您未使用image package至imrotate和imresize的功能。在调用这些函数pkg load image
之前,不要忘记加载图像包。