画像を任意のサイズに等分割するにはどうすれば良いですか?
11 views (last 30 days)
Show older comments
MathWorks Support Team
on 8 Mar 2017
Answered: MathWorks Support Team
on 8 Mar 2017
画像を任意のサイズに分割したいと考えています。
FOR ループを使用しないで、一度に分割する方法を教えてください。
Accepted Answer
MathWorks Support Team
on 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);
0 Comments
More Answers (0)
See Also
Categories
Find more on Read, Write, and Modify Image in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!