资源简介

不调用fspecial和filter2函数,针对每个像素循环实现三种滤波。

资源截图

代码片段和文件信息

function I1=gaussian_filter(Ideltahsize)
%I为读入的要处理的图像delta是高斯分布的标准差hsize是使用的高斯模板的大小
%返回对图像I进行高斯滤波后得到的滤波图像
mid=(hsize+1)/2;
H=double(gaussian_templete(deltahsize));
[N1N2]=size(I);
%图像中心部分处理,调用gaussian模板
I1=zeros(N1N2);
for i=mid:N1-mid+1
    for j=mid:N2-mid+1
        I2=I(i-mid+1:i+mid-1j-mid+1:j+mid-1);%取出用于计算I1(ij)的图像中的矩阵块hsize*hsize
        I2=I2.*H;%与H做内积
        I2=sum(I2);
        I1(ij)=sum(I2);%计算矩阵I3的所有元素的累加和,赋值。
        if I1(ij) > 255
            I1(ij) = 255;
        elseif  I1(ij) < 0
            I1(ij)=0;
        end
    end
end
%图像边缘点赋值
for i=1:mid-1
    I1(i:)=I(i:);
end
for i=N1-mid+2:N1
    I1(i:)=I(i:);
end
for j=1:mid-1
    I1(:j)=I(:j);
end
for j=N2-mid+2:N2
    I1(:j)=I(:j);
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        412  2010-04-19 22:11  matlab滤波器源码\gaussian_templete.m

     文件        633  2009-04-19 13:53  matlab滤波器源码\laplacian_filter.m

     文件        960  2010-04-19 22:27  matlab滤波器源码\log_filter.m

     文件        438  2010-04-19 22:06  matlab滤波器源码\log_templete.m

     文件        869  2010-04-19 22:24  matlab滤波器源码\gaussian_filter.m

     文件        200  2010-04-19 23:02  matlab滤波器源码\y2.m

     目录          0  2010-04-20 19:26  matlab滤波器源码

----------- ---------  ---------- -----  ----

                 3512                    7


评论

共有 条评论