画像を任意のサイズに​等分割するにはどうす​れば良いですか?

11 visualizzazioni (ultimi 30 giorni)
MathWorks Support Team
MathWorks Support Team il 8 Mar 2017
画像を任意のサイズに分割したいと考えています。 
FOR ループを使用しないで、一度に分割する方法を教えてください。 

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 8 Mar 2017
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);

Più risposte (0)

Categorie

Scopri di più su Read, Write, and Modify Image in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!