1枚の画像を、指定したサイズで分割して新しいサブ画像セットを作成するには、brockproc 関数を使います。
brockproc 関数では、ユーザが指定した関数(処理)を、入力画像のそれぞれのブロックに対して実行することができます。
以下のサンプルコードは、3次元の RGB 画像を使用した例です。
まず、brockproc 関数で指定するための関数 cropAndSaveBlock.m を作成します。この関数では、分割した画像を imwrite 関数で書き込みを行います。
function cropAndSaveBlock(bs)
save_loc = pwd;
fileName = [save_loc, '\img', int2str(bs.location(1)), '_', int2str(bs.location(2)), '.jpg'];
imwrite(bs.data, fileName)
end
次に、上記関数を blockproc 関数から呼び出します。
ここでは、以下のように画像を imread 関数で読み込み、切り出したい画像サイズをピクセルで指定した後、 blockproc 関数の fun に当たる入力引数(今回の場合第三引数)として cropAndSaveBlock.m 関数を指定します。
>> I = imread('peppers.png');
>> blockSize = [200 200];
>> blockproc(I, blockSize, @cropAndSaveBlock);