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');

生成的高斯模板

在这里插入图片描述


处理前后图片对比

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章