前提・実現したいこと
matlabを用いて読み込んだ画像を45度回転させるコードを作りたいのですが以下のようなエラーが出ます。どうすればいいのでしょうか。補完方法はニアレストネイバーを使いたいです。
発生している問題・エラーメッセージ
位置 1 のインデックスが無効です。配列インデックスは正の整数または logical 値でなければなりません。 エラー: no3_1>rotate (line 19) out(y,x) = img(fix(y_out+0.5), fix(x_out+0.5)); エラー: no3_1 (line 6) out = rotate(pic, deg);
該当のソースコード
matlab
1pic = imread('a.jpg'); 2pic = rgb2gray(pic); 3 4deg = 45; 5 6out = rotate(pic, deg); 7 8figure, im1 = imshow(uint8(out)); 9 10function out = rotate(img, deg) 11 [height, width] = size(img); 12 rad = deg / 180 * pi; 13 out =zeros(height,width); 14 15 for y =1:height 16 for x = 1:width 17 x_out = (x-width/2)*cos(rad)-(y-height/2)*sin(rad)+width/2; 18 y_out = (x-width/2)*sin(rad)+(y-height/2)*cos(rad)+height/2; 19 out(y,x) = img(fix(y_out+0.5), fix(x_out+0.5)); 20 end 21 end 22end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。