文档章节

Matlab数字图像处理之四:图像增强和空域滤波

天蚕宝衣
 天蚕宝衣
发布于 2017/03/16 20:31
字数 2260
阅读 225
收藏 0

一、 实验目的

巩固滤波算法,了解几种不同滤波方式的使用和使用的场合,学会使用MatLab对图像作滤波处理,体会滤波效果,培养处理实际图像的能力。

二、 实验原理与函数说明

fspecial 函数

功能:产生预定义滤波器

格式:H=fspecial(type)

产生一个由 type 指定的二维滤波器 H ,返回的H常与其它滤波器搭配使用,如:

H=fspecial(‘gauss’,n,sigma)       高斯低通滤波器

H=fspecial(‘sobel’)              Sobel 水平边缘增强滤波器

H=fspecial(‘prewitt’)            Prewitt水平边缘增强滤波器

H=fspecial(‘laplacian’,alpha) 近似二维拉普拉斯滤波器

H=fspecial(‘log’,n,sigma)      高斯拉普拉斯(LoG)运算滤波器

H=fspecial(‘average’,n)           均值滤波器

H=fspecial(‘unsharp’,alpha)         模糊对比增强滤波器

filter2 函数

功能:计算二维线性数字滤波,它与函数fspecial连用

格式1:Y=filter2(B,X)

说明:filter2使用矩阵B中的二维 滤波器对数据X进行滤波,结果Y是通过二维互相关计算出来的,其大小与 X一样。

格式2:Y=filter2(B,X,’shape’)

说明:filter2返回的Y是通过二维互相关计算出来的,其大小由参数 shape确定,其取值如下:

full 返回二维互相关的全部结果,size(Y)>size(X);

same 返回二维互相关结果的中间部分,Y与X大小相同;

valid 返回在二维互相关过程中,未使用边缘补0部分进行计算的结果部分,有 size(Y)<size(X) 。

filter2函数用于图像滤波

i=imread(‘e:w11.tif’);

h=[1,2,1;0,0,0;-1,-2,-1]; %Sobel算子

j=filter2(h,i);

conv2函数 (conv函数(多维卷积))

功能:计算二维卷积。

格式1:C=conv2(A, B)conv2计算矩阵A和B的卷积,若 [Ma,Na]=size(A), [Mb,Nb]=size(B), 则 size(C)=[Ma+Mb-1,Na+Nb-1];

格式2:C=conv2(Hcol, Hrow, A) 

说明:矩阵 A分别与Hcol向量在列方向和Hrow向量在行方向上进行卷积;

格式3:C=conv2(…, ′shape′)

说明:用来指定conv2返回二维卷积结果部分,参数shape可取值如下:

full 为缺省值,返回二维卷积的全部结果;

same 返回二维卷积结果中与 A 大小相同的中间部分;

valid 返回在卷积过程中,未使用边缘补0部分进行计算的卷积结果部分,当 size(A)>size(B) 时,size(C)=[Ma-Mb+1,Na-Nb+1]。

利用二维卷积conv2进行线性滤波

i=imread(‘e:w11.tif’);

h=[1,1,1;1,1,1;1,1,1];

h=h/9;

j=conv2(i,h);

medfilt2函数

功能:图像中值滤波

格式:C=medfilt2(A,n)

示例:

A0=imread(‘abao.bmp’);

A=rgb2gray(A0);

I=imnoise(A,’salt & pepper’,0.02); %叠加密度为0.02的椒盐噪声

C=medfilt2(I, [3 3]); %窗口大小为3×3的中值滤波

edge函数

功能:图像边缘检测,提供了许多微分算子模板,对某些模板可以指定水平边缘还是垂直边缘(或者两者都有)敏感(即主要检测是水平边缘还是垂直边缘)。

格式:C=edge(A,type)

说明:type指明了边缘检测所用的算子

示例:

J1=edge(I,’sobel’);

J2=edge(I,‘prewitt’);

J3=edge(I,’log’);

J4= edge(I,’roberts’)

三、 实验内容及步骤

1. 完成对图像加噪声,使用均值滤波器、中值滤波器对不同噪声类型、不同强度的噪声图像进行滤波处理,并评价处理的结果,进行理论上的解释。

(a) 读入图像electric.tif;

(b) 利用imnoise函数在图像上加入高斯噪声;

(c) 利用预定义函数fspecial 产生平均(average)滤波器 ;

(d) 分别采用3×3和5×5的模板,用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;

(e) 选择不同大小的模板,对加入某一固定噪声的图像进行处理,观察上述滤波器处理的结果;

(f) 利用imnoise函数在图像上加入椒盐噪声;

(g) 重复(c)~(e)的步骤;

(h) 输出全部结果并进行讨论;

高斯噪声0.02,分别用3×3和5×5的模板,进行平均滤波和中值滤波

A=imread(‘cameraman.tif’);

B=im2double(A);

CX=imnoise(B,’gaussian’,0.02);

A3=fspecial(‘average’,3);

A5=fspecial(‘average’,5);

DX=filter2(A3,CX);

EX=filter2(A5,CX);

FX=medfilt2(CX,[3 3]);

GX=medfilt2(CX,[5 5]);

subplot(2,3,1),imshow(A),title(‘原图’);

subplot(2,3,2),imshow(CX),title(‘高斯噪声 0.02′);

subplot(2,3,3),imshow(DX),title(‘平滤波均3×3′);

subplot(2,3,4),imshow(EX),title(‘平滤波均5×5′);

subplot(2,3,5),imshow(FX),title(‘中值滤波3×3′);

subplot(2,3,6),imshow(GX),title(‘中值滤波5×5′)

Matlab数字图像处理之四:图像增强和空域滤波

高斯噪声0.05,分别用3×3和5×5的模板,进行平均滤波和中值滤波

A=imread(‘cameraman.tif ‘);

B=im2double(A);

CY=imnoise(B,’gaussian’,0.05);

A3=fspecial(‘average’,3);

A5=fspecial(‘average’,5);

DY=filter2(A3,CY);

EY=filter2(A5,CY);

FY=medfilt2(CY,[3 3]);

GY=medfilt2(CY,[5 5]);

subplot(2,3,1),imshow(A),title(‘原图’);

subplot(2,3,2),imshow(CY),title(‘高斯噪声 0.05′);

subplot(2,3,3),imshow(DY),title(‘平滤波均3×3′);

subplot(2,3,4),imshow(EY),title(‘平滤波均5×5′);

subplot(2,3,5),imshow(FY),title(‘中值滤波3×3′);

subplot(2,3,6),imshow(GY),title(‘中值滤波5×5′)

Matlab数字图像处理之四:图像增强和空域滤波

椒盐噪声0.02,分别用3×3和5×5的模板,进行平均滤波和中值滤波

A=imread(‘cameraman.tif ‘);

B=im2double(A);

CZ= imnoise(B,’salt & pepper’,0.02);

A3=fspecial(‘average’,3);

A5=fspecial(‘average’,5);

DZ=filter2(A3,CZ);

EZ=filter2(A5,CZ);

FZ=medfilt2(CZ,[3 3]);

GZ=medfilt2(CZ,[5 5]);

subplot(2,3,1),imshow(A),title(‘原图’);

subplot(2,3,2),imshow(CZ),title(‘椒盐噪声 0.02′);

subplot(2,3,3),imshow(DZ),title(‘平滤波均3×3′);

subplot(2,3,4),imshow(EZ),title(‘平滤波均5×5′);

subplot(2,3,5),imshow(FZ),title(‘中值滤波3×3′);

subplot(2,3,6),imshow(GZ),title(‘中值滤波5×5′)

Matlab数字图像处理之四:图像增强和空域滤波

不同噪声类型和强度,滤波后进行比较:

subplot(3,5,1),imshow(CX),title(‘高斯噪声 0.02′);

subplot(3,5,2),imshow(DX),title(‘平滤波均3×3′);

subplot(3,5,3),imshow(EX),title(‘平滤波均5×5′);

subplot(3,5,4),imshow(FX),title(‘中值滤波3×3′);

subplot(3,5,5),imshow(GX),title(‘中值滤波5×5′)

subplot(3,5,6),imshow(CY),title(‘高斯噪声 0.05′);

subplot(3,5,7),imshow(DY),title(‘平滤波均3×3′);

subplot(3,5,8),imshow(EY),title(‘平滤波均5×5′);

subplot(3,5,9),imshow(FY),title(‘中值滤波3×3′);

subplot(3,5,10),imshow(GY),title(‘中值滤波5×5′)

subplot(3,5,11),imshow(CZ),title(‘椒盐噪声 0.02′);

subplot(3,5,12),imshow(DZ),title(‘平滤波均3×3′);

subplot(3,5,13),imshow(EZ),title(‘平滤波均5×5′);

subplot(3,5,14),imshow(FZ),title(‘中值滤波3×3′);

subplot(3,5,15),imshow(GZ),title(‘中值滤波5×5′)

Matlab数字图像处理之四:图像增强和空域滤波

2. 完成对图像的加噪、降噪、边缘增强

A) 在MATLAB中读入名为eight.tif的图像给矩阵X,将X强制类型转换为double,最大值归一化并显示X。

B) 使用imnoise函数对图像矩阵X加噪(均值为零,方差为0.005的高斯噪声),加噪后图像矩阵名为J。

C) 使用平滑滤波模板和conv2函数对加噪图像进行平滑滤波即降噪,输出图像Y1并显示。

D) 使用锐化滤波模板和conv2函数对图像X进行锐化滤波即边缘增强,输出图像Y2并显示。

E) 在一个图形窗口中建立2×2子窗口,分别显示原始图像X, 加噪图像J, 降噪后图像Y1和边缘增强图像Y2。

X=imread(‘eight.tif’);

Y=double(X);

X=(255-Y)./255;

J=imnoise(X,’gaussian’,0,0.005);

d1=0.04.*[1,1,1,1,1; 1,1,1,1,1; 1,1,1,1,1; 1,1,1,1,1; 1,1,1,1,1];

Y1=conv2(J,d1);

d2=[0,-1,0;-1,4,-1;0,-1,0];

Y2=conv2(X,d2);

subplot(2,2,1),imshow(X),title(‘原图’);

subplot(2,2,2),imshow(J),title(‘高斯噪声’);

subplot(2,2,3),imshow(Y1),title(‘降噪 Y1′);

subplot(2,2,4),imshow(Y2),title(‘边缘增强 Y2′)

Matlab数字图像处理之四:图像增强和空域滤波

3. 完成图像的边缘检测

a) 使用edge函数和同样的锐化滤波器对图像X进行锐化滤波即边缘增强,输出图像Y3并显示。

b) 将上述得到的结果图像与第二步的边缘增强结果进行比较,给出合理的解释。

X=imread(‘eight.tif’);

Y=double(X);

X=(255-Y)./255;

J=imnoise(X,’gaussian’,0,0.005);

d2=[0,-1,0;-1,4,-1;0,-1,0];

Y2=conv2(X,d2);

Y3=edge(X,’sobel’);

subplot(1,3,1),imshow(X),title(‘原图’);

subplot(1,3,2),imshow(Y2),title(‘锐化滤波’);

subplot(1,3,3),imshow(Y3),title(‘edge函数’);

Matlab数字图像处理之四:图像增强和空域滤波

四、 思考与回答:

1. 结合实验内容,定性评价平均滤波器/中值滤波器对高斯噪声和椒盐噪声的去噪效果?

subplot(1,2,1),imshow(DX),title(‘高斯噪声 0.02 平滤波均3×3′);

subplot(1,2,2),imshow(DZ),title(‘椒盐噪声 0.02 平滤波均3×3′);

Matlab数字图像处理之四:图像增强和空域滤波

平均滤波对两种噪声去噪效果差不多。

subplot(1,2,1),imshow(FX),title(‘高斯噪声 0.02 中值滤波3×3′);

subplot(1,2,2),imshow(FZ),title(‘椒盐噪声 0.02 中值滤波3×3′);

Matlab数字图像处理之四:图像增强和空域滤波

中值滤波明显对椒盐噪声去噪效果好。

2. 结合实验内容,定性评价滤波窗口对去噪效果的影响?

subplot(1,2,1),imshow(FZ),title(‘中值滤波3×3′);

subplot(1,2,2),imshow(GZ),title(‘中值滤波5×5′)

Matlab数字图像处理之四:图像增强和空域滤波

subplot(1,2,1),imshow(DZ),title(‘平滤波均3×3′);

subplot(1,2,2),imshow(EZ),title(‘平滤波均5×5′);

Matlab数字图像处理之四:图像增强和空域滤波

比较可知,滤波窗口越大,去噪效果越好。

本文转载自:http://www.jishuzh.com/gis/matlab%E6%95%B0%E5%AD%97%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86%E4%B9%8B%E5%

共有 人打赏支持
天蚕宝衣
粉丝 20
博文 239
码字总数 179054
作品 0
天津
【工具使用系列】关于 MATLAB 图像增强,你需要知道的事

如何进行图像增强 点处理增强 空域变换增强 直接灰度调整 全域线性变换 非线性灰度变换 直方图处理 直方图均衡化 图像间的代数运算 空域滤波增强 平滑滤波器 锐化滤波器 图像平滑 图像锐化 ...

AllenMoore
01/27
4
0
图像的空域增强处理—空域滤波(matlab实现)

在这里我描述的是我一个初学者所收集到的一些较实用化的信息,具体原理不做描述; 空域滤波分为:平滑滤波(低通滤波)、锐化滤波(高通滤波); 平滑滤波(低通滤波):过滤掉图像中的高频部...

qwe331822775
03/27
0
0
【图像处理】空间滤波、中值滤波(Spatial Filtering and Median Filtering)

实验要求   编写一个能够完成两幅图像之间加、减、乘、除四种算术运算的函数。另外,对于两幅图像的乘法,所编写的乘法程序还要能够完成一幅图像乘以一个常数的功能。使用图Fig1.10(4)和F...

u013165921
01/15
0
0
OpenCV学习之旅-简介

1、什么是图像,对图像进行处理是神马操作 一副图像可以定义为二维的函数z = f(x,y),其中x、y是其空间坐标,而其值z的大小就是函数在该点的灰度值。 例图.png 比如我用Matlab打开了一张256...

C6C
2017/08/28
0
0
PIL (Python图像处理库) 1.1.7 发布

PIL 1.1.7 发布了,该版本改进了对 PNG 压缩的处理,支持隔行扫描的PNG文件,改进了对各种 TGA 的支持,修复了一些错误等等。 图像处理工具包PIL(Python Image Library),该软件包提供了基本的...

红薯
2011/10/08
2.5K
1

没有更多内容

加载失败,请刷新页面

加载更多

java基础知识,小栗子

来操作一下数组.....注意带参数的变长数组的使用. package com.avatus;import java.util.Random;import java.util.Scanner;public class Main { public static void main(St...

Oh_really
18分钟前
2
0
SSO单点登录PHP简单版

  前面做了一个新项目,需要用户资源可以需要共享。由于之前没有做过这样的东西,回家之后,立马网站百度“单点登录”。帖子很多,甄别之后,这里列几篇认为比较有营养。   http://blog...

slagga
55分钟前
2
0
Java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一

对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。 本文参考java 泛型详解、Java中的泛型方法、 java泛型详解 1 概述 泛型在j...

hensemlee
59分钟前
2
0
Annotation注解详细介绍

目录介绍 1.Annotation库的简单介绍 2.@Nullable和@NonNull 3.资源类型注释 4.类型定义注释 5.线程注释 6.RGB颜色纸注释 7.值范围注释 8.权限注释 9.重写函数注释 10.返回值注释 11.@Keep注释...

潇湘剑雨
今天
2
0
一步步编写自己的PHP爬取代理IP项目(二)

这一章节我们正式开展我们的爬虫项目,首先我们先要知道哪个网站能获取到免费代理IP,目前比较火的有西刺代理,快代理等,这里我们拿西刺代理作为例子。 这里就是一个个免费的IP地址以及各自...

NateHuang
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部