基于Matlab的图像加噪滤波处理和图像边缘检测

目录

1.1 原始图像展示 

1.2 灰度图展示 

1.3 高斯加噪图展示

1.4 均值滤波图展示

1.5 中值滤波图展示

1.6 高斯滤波图展示

对比三种滤波效果 

2.1 Sobel边缘检测图展示

2.2 Canny边缘检测图展示

对比两种边缘检测效果


1.1 原始图像展示 

clear; clc; close all;
im = imread('E:\Matlab project\01.jpeg');
figure('NumberTitle', 'off', 'Name', 'smooth 01 with gaussian noise');
subplot(2, 3, 1);
imshow(im); % 显示原始图像
title('原始图像');

1.2 灰度图展示 

im_gray = rgb2gray(im); % 彩色图转灰度图
subplot(2, 3, 2);
imshow(im_gray); % 显示灰度图
title('灰度图');

1.3 高斯加噪图展示

im_gaus = imnoise(im_gray, 'gaussian', 0., 0.25); % 添加均值为0,方差为0.25的高斯噪声
subplot(2, 3, 3);
imshow(im_gaus); % 显示添加高斯噪声的图像
title('高斯加噪图像');

1.4 均值滤波图展示

h = fspecial('average', [5, 5]);
im_mean = imfilter(im_gray, h);
subplot(2, 3, 4);
imshow(im_mean); % 显示均值滤波后的图像
title('均值滤波图像');

       均值滤波:均值滤波用其像素点的平均值代替原像素值,在滤除噪声的同时也会滤掉图像的边缘信息。 


1.5 中值滤波图展示

im_med = medfilt2(im_gray,[5,5]);
subplot(2, 3, 5);
imshow(im_med); % 显示中值滤波后的图像
title('中值滤波图像');

       中值滤波:中值滤波用该像素周围邻域像素的中值代替原像素。中值滤波去除椒盐噪声和斑块噪声时,效果比较明显。 


1.6 高斯滤波图展示

h = fspecial('gaussian', [18 18], 0.15);
im_gausfilt = imfilter(im_gray, h);
subplot(2, 3, 6);
imshow(im_gausfilt); % 显示高斯滤波后的图像
title('高斯滤波图像');

        高斯滤波:高斯滤波是一种线性平滑滤波器,对于服从正态分布的噪声有很好的抑制作用。 


对比三种滤波效果 

       对比上述3种滤波方式的结果,我们可以得出尽管他们都能对加噪后的图片进行还原,但是效果不同。在这3种滤波中,高斯滤波效果最好,它可以清晰的看到狗子的毛发;中值滤波次之,尽管不能看到狗子的毛发并且狗子图像的边缘也略显模糊,但是对于狗子鼻子的还原还是不错的;最差的是均值滤波,看不到狗子的毛发,狗子图像的边缘也很模糊,狗子鼻子部分的还原也很差,滤波效果最差。


 

2.1 Sobel边缘检测图展示

 

I=imread('E:\Matlab project\01.jpeg');    
subplot(2,2,1);
imshow(I);
title('原始图像')
I1=rgb2gray(I);
subplot(2,2,2);
imshow(I1);
title('灰度图像');
I2=edge(I1,'sobel');
subplot(2,2,3);
imshow(I2);
title('sobel算子边缘检测');

       Sobel算子是计算机视觉领域的一种重要处理方法。主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。Sobel算子是把图像中每个像素的上下左右四领域的灰度值加权差,在边缘处达到极值从而检测边缘。 


2.2 Canny边缘检测图展示

I3=edge(I1,'canny');
subplot(2,2,4);
imshow(I3);
title('canny算子边缘检测');

       Canny算子是一种非常重要的边缘检测算子,是最优的阶梯型边缘检测算子。它的最优性主要表现在以下三个方面:

(1)好的检测:Canny算子可以尽可能多地标识出原始图像中的实际边缘。

(2)好的定位:它所标记出来的边缘尽可能给你地接近实际图像中的实际边缘。

(3)最小响应:图像中的边缘只能标识一次,并且可能存在的图像噪声不标识成边缘。


对比两种边缘检测效果

       对比两种算子所得的边缘检测图,我们可以清晰的看出利用canny算子所得的边缘检测图效果要比sobel算子的好,因为canny算法在边缘检测时采用了非极大值抑制以及双阈值方法,因此排除了非边缘点的干扰,边缘检测效果更好。

 

  • 2
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值