0

それぞれのピクセルのM画像(たとえばI)を取得しようとしています。dそれらをベクトルに変換しますImgVctrM x dそれらを行列の配列として保存します。どうすればいいのですか?

私は次のことを試しました

ImgVctr = I(:);
img_vctr_arr(i,:) = ImgVctr';

しかし、それはエラーで失敗します:

Subscripted assignment dimension mismatch.

これを行う簡単な方法について何か提案はありますか?

すべての助けに感謝します!

編集:以下に添付された完全なmatlabコード:

img_vctr_arr = zeros (3, 38*28);
for i = 1:3
    clearvars I;
    fname = sprintf('a%d.png', i);    
    I = imread(fname);
    I = rgb2gray (I);

    ImgVctr = I(:);
    img_vctr_arr(i,:) = ImgVctr';
    figure (), imshow (I);

    [x, y] = size(I);
    fprintf ('%d, ', x);
    fprintf ('%d\n', y);
end;

〜ありがとう

4

1 に答える 1

1

次のように行列を事前に割り当てます。

img_vctr_arr = zeros(M,d);

次に入力します。

img_vctr_arr(i,:) = I(:)'; % do not even need the '

numel(I)equalsであることを確認してdください。

于 2013-11-06T02:02:44.307 に答える