画像のマトリックスがあり、次のことをしたいとします。
8x8マトリックス上でウィンドウをスライドさせます- マトリックス内の各ピクセルの平均を計算します
matlabmatlabでのコーディングが初めての場合、どうすればそれを行うことができますか。
ありがとう。
conv2のように、ones(8)フィルタを使用できますI2 = conv2(I, 1.0 / 64.0 * ones(8), 'valid');。「フィルター」が正規化されていないため、64.0 で割ります。
次のものも使用できますnlfilter。
fun = @(x) mean(x(:));
ans= nlfilter(img,[8 8],fun);
しかし、@ s.bandaraが示唆したように、平均を計算するだけの方conv2がはるかにconv2高速です... withを使用すると、行列のサイズが変わることに注意してくださいvalid。

nlfilter経過時間は 0.433989 秒です。
conv2 経過時間は 0.000803 秒です。
conv2したがって、平均を見つけるタスクのほうがはるかに高速であることは明らかです。
try to extract first the sub-matrices of your image like in here: MATLAB Submatrix
then use the mean(A) function for each submatrices