matlab模拟池化过程

前言

本文是关于我对于池化的个人理解,以及在matlab中做出的图片可视化模拟。
这也是我在深度学习之初的探索。

Pooling定义(个人对max pooling的理解)

将一幅图片,分成很多1010像素区域的小块,每个小块取一个最大值作为这一小块区域的代表。
比如一个500010000像素的图片,我们将其分成500*1000个小块,取每个小块的最大值作为新图片对应位置的像素值。

matlab模拟

通过处理此图像,池化的宏观效果如下所示。
一张甘雨的图,作为本期的素材
下图的四个部分分别是,原图和池化小块大小为5 * 5, 15 * 15, 50 * 50的效果
matlab模拟池化过程
可以看出,随着池化规模的增大,图像变得更加模糊,宏观信息更加突出。

附上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

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年3月3日 下午5:27
下一篇 2022年3月3日

相关推荐