前言
本文是关于我对于池化的个人理解,以及在matlab中做出的图片可视化模拟。
这也是我在深度学习之初的探索。
Pooling定义(个人对max pooling的理解)
将一幅图片,分成很多1010像素区域的小块,每个小块取一个最大值作为这一小块区域的代表。
比如一个500010000像素的图片,我们将其分成500*1000个小块,取每个小块的最大值作为新图片对应位置的像素值。
matlab模拟
通过处理此图像,池化的宏观效果如下所示。
下图的四个部分分别是,原图和池化小块大小为5 * 5, 15 * 15, 50 * 50的效果
可以看出,随着池化规模的增大,图像变得更加模糊,宏观信息更加突出。
附上matlab代码:
f = imread("H:\Desktop\92689587_p0.jpg");
subplot(1,4,1)
imshow(f);
title('原图');
g = im2double(f);
q = zeros(720,487,3);
for i = 0:719
for j = 0:486
for k = 1:3
t = 0;
for x = 1:5
for y = 1:5
t = max(g(5*i+x,5*j+y,k),t);
end
end
q(i+1,j+1,k) = t;
end
end
end
subplot(1,4,2)
imshow(q)
title('5*5');
r = zeros(240,162);
for i = 0:239
for j = 0:161
for k = 1:3
t = 0;
for x = 1:15
for y = 1:15
t = max(g(15*i+x,15*j+y,k),t);
end
end
r(i+1,j+1,k) = t;
end
end
end
subplot(1,4,3)
imshow(r);
title('15*15');
u = zeros(72,48,3);
for i = 0:71
for j = 0:47
for k = 1:3
t = 0;
for x = 1:50
for y = 1:50
t = max(g(50*i+x,50*j+y,k),t);
end
end
u(i+1,j+1,k) = t;
end
end
end
subplot(1,4,4)
imshow(u);
title('50*50');
版权声明:本文为博主浪里白条猫原创文章,版权归属原作者,如果侵权,请联系我们删除!
原文链接:https://blog.csdn.net/SWIMMING_CAT_/article/details/123227731