作者:峰哥说的都队
问题背景
对于从摄像头获取的图片,如果直接进行传输需要很高的传输速率,我们需要对发送的图片做压缩处理。
解决原理
我们可以取相邻九个像素点为一个单元,对该单元进行操作,比如说均匀池化、最大池化,或者直接9取1
% 取像素点
im1=im(1:3:end,1:3:end,:);
im2=im(2:3:end,1:3:end,:);
im3=im(3:3:end,1:3:end,:);
im4=im(1:3:end,2:3:end,:);
im5=im(2:3:end,2:3:end,:);
im6=im(3:3:end,2:3:end,:);
im7=im(1:3:end,3:3:end,:);
im8=im(2:3:end,3:3:end,:);
im9=im(3:3:end,3:3:end,:);
% 返回值为9个相邻像素点中的最大值
im_return = max(cat(4,im1,im2,im3,im4,im5,im6,im7,im8,im9),[],4);
操作步骤
在实际操作中,如果因为编程原因无法采用最大池化压缩算法,可以直接采用池化压缩算法。
% 返回值为9个像素点中的一个
im_return =im1;