2

画像のマトリックスがあり、次のことをしたいとします。

  • 8x8マトリックス上でウィンドウをスライドさせます
  • マトリックス内の各ピクセルの平均を計算します

matlabmatlabでのコーディングが初めての場合、どうすればそれを行うことができますか。

ありがとう。

4

3 に答える 3

4

conv2のように、ones(8)フィルタを使用できますI2 = conv2(I, 1.0 / 64.0 * ones(8), 'valid');。「フィルター」が正規化されていないため、64.0 で割ります。

于 2013-01-22T08:33:17.963 に答える
4

次のものも使用できますnlfilter

fun = @(x) mean(x(:)); 
ans= nlfilter(img,[8 8],fun);

しかし、@ s.bandaraが示唆したように、平均を計算するだけの方conv2はるかにconv2高速です... withを使用すると、行列のサイズが変わることに注意してくださいvalid

ここに画像の説明を入力

nlfilter経過時間は 0.433989 秒です。

conv2 経過時間は 0.000803 秒です。

conv2したがって、平均を見つけるタスクのほうがはるかに高速であることは明らかです。

于 2013-01-22T08:40:55.740 に答える
0

try to extract first the sub-matrices of your image like in here: MATLAB Submatrix

then use the mean(A) function for each submatrices

于 2013-01-22T08:49:01.077 に答える