15×15高斯低通模板运算编程实现

题目

15×15高斯低通模板运算编程实现


代码

I=round((fspecial('gaussian',[15,15],2.9))*10000);
%xlswrite('GaussM',I);
ratio=sum(I(:));   %这个是模板前的因子
image=imread('Moc_gray.jpg');
image=rgb2gray(image);  %转成灰度图
[height,width]=size(image);
padding_image=zeros(height+14,width+14);    %边界拓延选择最简单的0拓延
padding_image(8:height+7,8:width+7)=image;
new_image=zeros(height,width);
load=0;
for i=8:height+7
    for j=8:width+7
       
            for m=i-7:i+7
                for n=j-7:j+7
                   load=load+padding_image(m,n)*I(m-i+8,n-j+8);
                end
            end
        load=load/ratio;
        new_image(i-7,j-7)= round(load);
        load=0;
    end
end
imwrite(mat2gray(new_image),'new_image.jpg');

生成的高斯模板

在这里插入图片描述


处理前后图片对比

处理前
在这里插入图片描述
处理后
在这里插入图片描述

发布了28 篇原创文章 · 获赞 36 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Clover_pofu/article/details/105344439
15
今日推荐