侧边栏壁纸
    • 累计撰写 302 篇文章
    • 累计收到 527 条评论
    matlab实现灰度图像空间域滤波
    我的学记|刘航宇的博客

    matlab实现灰度图像空间域滤波

    刘航宇
    2021-05-01 / 0 评论 / 346 阅读 / 正在检测是否收录...

    实验目的:掌握采用图像灰度图像空间域平滑、去噪的一般方法方法,并编程实现。

    实验内容:编程实现灰度图像空间域滤波:至少包括 3×3、5×5窗口的均值滤波与中值滤波,并比较不同方案增强后的效果及影响因素。

    实验平台:Matlab

    实验代码:

    %matlab实现灰度图像空间域滤波,自定义窗口的均值、中值、高斯滤波,189064238刘航宇
    
    try  
    
    %步骤一:彩色、灰度变换  
    
    h=imread('D:\图片\image\liu.jpg'); %读入彩色图片
    
    subplot(2,2,1),imshow(h);title('原图');  %显示原图像
    
    c=rgb2gray(h); %把彩色图片转化成灰度图片,256级  
    
    subplot(2,2,2),imshow(c),title('原始灰度图象'); %显示原始图象  
    
    g=imnoise(c,'gaussian',0.1,0.002); %加入高斯噪声  
    
    subplot(2,2,3),imshow(g),title('加入高斯噪声之后的图象'); %显示加入高斯噪声之后的图象    
    
    %步骤二:用系统预定义滤波器进行均值滤波  
    
    n=input('请输入均值滤波器模板大小\n');  
    
    A=fspecial('average',n); %生成系统预定义的3X3滤波器  
    
    Y=filter2(A,g)/255;           %用生成的滤波器进行滤波,并归一化  
    
    figure,imshow(Y),title('用系统函数进行均值滤波后的结果'); %显示滤波后的图象  
    
    %步骤三:用Matlab系统函数进行中值滤波  
    
    n2=input('请输入中值滤波的模板的大小\n');  
    
    Y1=medfilt2(g,[n2 n2]);   %调用系统函数进行中值滤波,n2为模板大小   
    
    figure,imshow(Y1),title('用Matlab系统函数进行中值滤波之后的结果'); %显示滤波后的图象  
    
    %步骤四:用matlab系统函数进行高斯滤波  
    
    n3=input('请输入高斯滤波器的均值\n');  
    
    k=input('请输入高斯滤波器的方差\n');  
    
    A2=fspecial('gaussian',k,n3);      %生成高斯序列  
    
    Y2=filter2(A2,g)/255;              %用生成的高斯序列进行滤波  
    
    figure,imshow(Y2),title('用Matlab函数进行高斯滤波之后的结果');    %显示滤波后的图象  
    
     
    
    catch           %捕获异常  
    
        disp(lasterr);     %如果程序有异常,输出  
    
    end

    ps:方差填1,2,3,4任意一个即可

    步骤及其实验现象:


    然后输入模板大小

    然后产生三个图窗



    然后输入 clc;clear
    重新输入本代码,完成5*5模板,在此不再赘述。

    结果分析:

    请自行上网查询均值、中值、高斯滤波区别、学习。

    5
    【概率论】自由度为n的卡方分布,t分布,F(m,n)分布的期望和方差
    « 上一篇 2021-05-05
    基于DSP实现FIR滤波器实验解答
    下一篇 » 2021-04-24

    评论 (0)

    取消