-2

画像から 3x3 マトリックスを抽出して個別に保存する必要があり、画像の最後までこのように続ける必要があります。たとえば、私の画像は次の行列です。

p = [ 1 2 3 4 5 6 7 8 9; ...
      1 2 3 4 5 6 7 8 9; ...
      1 2 3 4 5 6 7 8 9; ...
      1 2 3 4 5 6 7 8 9; ...
      1 2 3 4 5 6 7 8 9; ...
      1 2 3 4 5 6 7 8 9 ]

出力は次のようになります。

p1 = [1 2 3; 1 2 3; 1 2 3]
p2 = [4 5 6; 4 5 6; 4 5 6]
p3 = [7 8 9; 7 8 9; 7 8 9]

等々....

このためのコードまたは組み込み関数を提案してもらえますか?

4

2 に答える 2

1

部分行列を抽出する最も簡単な方法:

p1 = img(1:3, 1:3);
p2 = img(4:6, 4:6);
p3 = img(7:9, 7:9);

スライスを行うための関数。

function imgsl = img_slice( img, ry, rx )
    [ Y X ] = meshgrid(ry, rx);
    imgsl = reshape(img(sub2ind(size(img),Y(:),X(:))),[length(rx) length(ry)]).';

次のように使用します。

p1 = img_slice( p, 1:3, 1:3 );
p2 = img_slice( p, 4:6, 4:6 );
p3 = img_slice( p, 7:9, 7:9 );
于 2013-06-17T15:57:06.710 に答える