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

12 次查看(过去 30 天)
MathWorks Support Team
画像を任意のサイズに分割したいと考えています。 
FOR ループを使用しないで、一度に分割する方法を教えてください。 

采纳的回答

MathWorks Support Team
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);

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Read, Write, and Modify Image 的更多信息

Community Treasure Hunt

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

Start Hunting!