質問: 画像を分割し各セグメントの平均値を出したい。 128×128の画像を縦横64分割し、各区画の平均値を出力した画像を作成したいです。
回答: 1枚の画像を指定したサイズで分割し、それぞれの分割したブロックごとで処理を実行するには brockproc 関数がご利用になれます。 brockproc 関数ではユーザが指定した関数を指定したサイズで画像を分割したブロックに対して実行することができます。 % サンプルとして、peppers.pngを利用します i = imread('peppers.png'); % 128x128にリサイズします imagesize = [128, 128]; i = imresize(i, imagesize); % ここではグレースケール画像を利用します i = rgb2gray(i); figure; imshow(i); % 分割サイズを指定します divsize = [64, 64]; % 1つのブロックサイズを求めます blocksize = imagesize ./ divsize; % 1つ1つのブロックごとに平均値を求める関数を定義します fun = @(block_struct) uint8( round(mean2(block_struct.data)) ); % ブロックごとに平均値を求めた値を出力します j = blockproc(i, [2, 2], fun); figure; imshow(j);