很难解释我在寻找什么,我在 Matlab 中有一个用 m x 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
会变成
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
最佳答案
看起来 imresize
给出的结果与您的预期略有不同。对于您的输入数据,以下将起作用:
A = filter2([1 1; 1 1] / 4, X, 'same')
A = A(1:2:end, 1:2:end);
编辑:实际上,执行以下操作可能更快:
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));
关于Matlab "Scale Down"具有平均值的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7741808/