很难解释我在寻找什么,我在Matlab中有一个由n矩阵表示的图像,我试图将其缩小到4x4,就像缩放图像一样(平均值最接近的值)
所以举个例子
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
0 2 3 4 9 9 7 8
0 2 3 4 9 9 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 7
1 2 3 4 5 6 7 7
Run Code Online (Sandbox Code Playgroud)
会成为
1.5 3.5 5.5 7.5
1.0 3.5 9.0 7.5
1.5 3.5 5.5 7.5
1.5 3.5 5.5 7.0
Run Code Online (Sandbox Code Playgroud)
看起来像是imresize提供了与您的预期略有不同的东西.对于您的输入数据,以下内容将起作用:
A = filter2([1 1; 1 1] / 4, X, 'same')
A = A(1:2:end, 1:2:end);
Run Code Online (Sandbox Code Playgroud)
编辑:实际上,执行以下操作可能会更快:
i = 1:2:size(A,1)-1;
j = 1:2:size(A,2)-1;
B = 0.25 * (A(i,j) + A(i+1,j) + A(i,j+1) + A(i+1,j+1));
Run Code Online (Sandbox Code Playgroud)