资源描述
数字图像处理实验
目 录
实验一 MATLAB数字图像处理初步 3
实验二 图像的代数运算 7
实验三 图像增强—灰度变换 10
实验四 图像增强—直方图变换 12
实验五 图像增强—空域滤波 14
实验六 图像的傅立叶变换 18
实验七 图像增强—频域滤波 20
实验八 彩色图像处理 22
实验九 图像分割 25
实验十 形态学运算 28
实验一 MATLAB数字图像处理初步
一、实验目的与要求
1.熟悉及掌握在MATLAB中能够处理哪些格式图像。
2.熟练掌握在MATLAB中如何读取图像。
3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。
4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。
5.图像间如何转化。
二、实验内容及步骤
1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中;
2.利用whos 命令提取该读入图像flower.tif的基本信息;
3.利用imshow()函数来显示这幅图像;
4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;
5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。
7.用imread()读入图像:Lenna.jpg 和camema.jpg;
8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;
9.用figure,imshow()分别将Lenna.jpg和camema.jpg显示出来,观察两幅图像的质量。
10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。
11.将每一步的函数执行语句拷贝下来,写入实验报告,并且将得到第3、9、10步得到的图像效果拷贝下来
三、考核要点
1、熟悉在MATLAB中如何读入图像、如何获取图像文件的相关信息、如何显示图像及保存图像等,熟悉相关的处理函数。
2、明确不同的图像文件格式,由于其具体的图像存储方式不同,所以文件的大小不同,因此当对同一幅图像来说,有相同的文件大小时,质量不同。
五、实验仪器与软件
(1) PC计算机
(2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox)
(3) 实验所需要的图片
四、实验内容
f=imread('C:\Users\Gateway\Desktop\ͼƬ\flower.tif');
whos f;
imshow(f);
imfinfo C:\Users\Gateway\Desktop\ͼƬ\flower.tif
ans =
Filename: 'C:\Users\Gateway\Desktop\图片\flower.tif'
FileModDate: '24-六月-2012 18:46:53'
FileSize: 392018
Format: 'jpg'
FormatVersion: ''
Width: 1600
Height: 1200
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {}
ans = %imfinfo压缩后的信息
Filename: 'flower.jpg'
FileModDate: '25-六月-2012 16:07:40'
FileSize: 81013
Format: 'jpg'
FormatVersion: ''
Width: 1600
Height: 1200
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {}
f=imread('C:\Users\Gateway\Desktop\ͼƬ\lenna.jpg');
g=imread('C:\Users\Gateway\Desktop\ͼƬ\camera.jpg');
figure;imshow(f);
figure,imshow(g);
imfinfo C:\Users\Gateway\Desktop\ͼƬ\lenna.jpg
imfinfo C:\Users\Gateway\Desktop\ͼƬ\camera.jpg
ans =
Filename: 'C:\Users\Gateway\Desktop\图片\lenna.jpg'
FileModDate: '24-六月-2012 18:44:09'
FileSize: 21307
Format: 'jpg'
FormatVersion: ''
Width: 300
Height: 300
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {}
ans =
Filename: 'C:\Users\Gateway\Desktop\图片\camera.jpg'
FileModDate: '24-六月-2012 18:44:32'
FileSize: 18653
Format: 'jpg'
FormatVersion: ''
Width: 256
Height: 256
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {}
f=imread('C:\Users\Gateway\Desktop\ͼƬ\lenna.jpg');
g=im2bw(f);
figure,imshow(g);
五、思考题
(1) 简述MatLab软件的特点。
(2) MatLab软件可以支持哪些图像文件格式?
doc imread
(3) 说明函数imread 的用途格式以及各种格式所得到图像的性质。
(4) 为什么用I = imread(‘lena.bmp’) 命令得到的图像I 不可以进行算术运算?
实验二 图像的代数运算
一、 实验目的
1.了解图像的算术运算在数字图像处理中的初步应用。
2.体会图像算术运算处理的过程和处理前后图像的变化。
二、 实验步骤
2.图像的减法运算
3. 图像的乘法运算
4.图像的除法运算
三、 实验内容
1.图像的加法运算
I=imread('C:\Users\Gateway\Desktop\ͼƬ\lenna2.jpg');
J=imread('C:\Users\Gateway\Desktop\ͼƬ\camera.jpg');
K = imadd(I,J);
imshow(K);
%lenna原图和camera尺寸大小不一样,不能相加,用ps将lenna裁剪成256*256与camera相同尺寸
I=imread('C:\Users\Gateway\Desktop\ͼƬ\camera.jpg');
J=imadd(I,50);
subplot(1,2,1);imshow(I);
subplot(1,2,2);imshow(J);
2.图像的减法运算
I2=zeros(256,256);
I=imread('rice.png');imshow(I)
background=imopen(I,strel('disk',15));
figure,imshow( background)
I2=imsubtract(I,background);
figure,imshow(I2)
3. 图像的乘法运算
I=imread('C:\Users\Gateway\Desktop\ͼƬ\camera.jpg');
J=immultiply(I,1.5);
subplot(1,2,1);imshow(I);
subplot(1,2,2);imshow(J);
4.图像的除法运算
I=imread('rice.png');
J=double('rice.png');
K=J*0.43+90;
I2=unit8(J);
Ip=imdivide(I,I2);
imshow(Ip,[]);
5.图像的四则代数运算
I=imread('C:\Users\Gateway\Desktop\ͼƬ\lenna2.jpg');
J=imread('C:\Users\Gateway\Desktop\ͼƬ\camera.jpg');
Z=imlincomb(0.5,I,0.5,J,50);
imshow(Z);
四、 思考题
由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?
从背景中提取图像
实验三 图像增强—灰度变换
一、实验目的:
1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。
2、学会对图像直方图的分析。
3、掌握直接灰度变换的图像增强方法。
二、实验内容:
1、图像数据读出
2、计算并分析图像直方图
3、利用直接灰度变换法对图像进行灰度变换
I=imread('C:\Users\Gateway\Desktop\ͼƬ\medicine.jpg');
J=rgb2gray(I);
imhist(J);
I=imread('C:\Users\Gateway\Desktop\ͼƬ\medicine.jpg');
J=rgb2gray(I);
g=imhist(J,256);
g1=imadjust(f,[0 1],[1 0]);
figure;imshow(g1);
%将0.5到0.75的灰度级扩展到范围[0 1]
g2=imadjust(f,[0.5 0.75],[0 1]);
figure;imshow(g2);
g=imread('C:\Users\Gateway\Desktop\ͼƬ\point.jpg');
h=log(1+double(g)); %对输入图像对数映射变换
h=mat2gray(h); %将矩阵h转换为灰度图片
h=im2uint8(h); %将灰度图转换为8位图
figure;imshow(h);
实验四 图像增强—直方图变换
一、 实验目的
1.掌握灰度直方图的概念及其计算方法;
2.熟练掌握直力图均衡化和直方图规定化的计算过程;
3.熟练掌握空域滤波中常用的平滑和锐化滤波器;
4.掌握色彩直方图的概念和计算方法
5.利用MATLAB程序进行图像增强。
二、 实验步骤
1打开计算机,启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;
2调入“实验一”中获取的数字图像,并进行计算机均衡化处理;
3显示原图像的直方图和经过均衡化处理过的图像直方图。
4记录和整理实验报告
三、 实验内容
I=imread('C:\Users\Gateway\Desktop\ͼƬ\pollen.jpg');
g=rgb2gray(I);
J=histeq(g); %对原图像进行直方图均衡化处理
imshow(I);
title('ÔͼÏñ');
figure;imshow(J);
title('¾ùºâ»¯ºóͼÏñ');
figure,subplot(1,2,1);
imhist(g,64); %将原图像直方图显示为64级灰度
title('ÔͼÏñÖ±·½Í¼');
subplot(1,2,2);
imhist(J,64);
title('¾ùºâ»¯ºóÖ±·½Í¼');
四、 思考题
1.直方图是什么概念?它反映了图像的什么信息?
直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况.直方图是以图形化参数来显示图片曝光精确度的手段,其描述的是图片显示范围内影像的灰度分布曲线。它可以帮助分析图片的曝光水平等一些信息
2.直方图均衡化是什么意思?它的主要用途是什么?
直方图拉伸和直方图均衡化化是两种最常见的间接对比度增强方法,直方图均衡化则通过使用累积函数对灰度值进行“调整”以实现对比度的增强。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。
实验五 图像增强—空域滤波
一、 实验目的
进一步了解MatLab软件/语言,学会使用MatLab对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。
了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。
二、实验内容与步骤
a) 调入并显示原始图像Sample2-1.jpg 。
b) 利用imnoise 命令在图像Sample2-1.jpg 上加入高斯(gaussian) 噪声
c)利用预定义函数fspecial 命令产生平均(average)滤波器
d)分别采用3x3和5x5的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;
e)选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,观察上述滤波器处理的结果。
f)利用imnoise 命令在图像Sample2-1.jpg 上加入椒盐噪声(salt & pepper)
g)重复c)~ e)的步骤
h)输出全部结果并进行讨论。
三、实验内容
i=imread('C:\Users\Gateway\Desktop\ͼƬ\electric.tif');
I=rgb2gray(i);
J=imnoise(I,'gauss',0.02);
J=imnoise(I,'salt & pepper',0.02);
ave1=fspecial('average',3); %产生3*3均值模板
ave2=fspecial('average',5);
K=filter2(ave1,J)/255; %均值滤波
L=filter2(ave2,J)/255;
M=medfilt2(J,[3 3]); %中值滤波¨
N=medfilt2(J,[5 5]);
imshow(I);
figure;imshow(J);
figure;imshow(K);
figure;imshow(L);
figure;imshow(M);
figure;imshow(N);
原图 gauss噪声
Gauss噪声3*3模板均值滤波 Gauss噪声5*5模板均值滤波
Gauss噪声3*3中值滤波 Gauss噪声5*5中值滤波
椒盐噪声
椒盐噪声3*3均值滤波 椒盐噪声5*5均值滤波
椒盐噪声3*3中值滤波 椒盐噪声5*5中值滤波
四,思考题/问答题
(1) 简述高斯噪声和椒盐噪声的特点。
椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。检验噪声往往由图像切割引起。椒盐噪声是指两种噪声,一种是盐噪声(salt noise),另一种是胡椒噪声(pepper noise)。盐=白色,椒=黑色。前者是高灰度噪声,后者属于低灰度噪声。一般两种噪声同时出现,呈现在图像上就是黑白杂点。高斯噪声是一种随机噪声。在任选瞬时中任取n个,其值按n个变数的高斯概率定律分布。高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。
(2) 结合实验内容,定性评价平均滤波器/中值滤波器对高斯噪声和椒盐噪声的去噪效果?
两种滤波对高斯噪声效果都不是很好,5*5的中值滤波效果好于3*3。中值滤波对椒盐噪声效果好于均值滤波。
(3) 结合实验内容,定性评价滤波窗口对去噪效果的影响?
窗口越大,去噪效果越好,但是窗口越大所用的时间越多。
实验六 图像的傅立叶变换
一、 实验目的
1了解图像变换的意义和手段;
2熟悉傅立叶变换的基本性质;
3熟练掌握FFT变换方法及应用;
4通过实验了解二维频谱的分布特点;
5通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。
6评价人眼对图像幅频特性和相频特性的敏感度。
二、 实验原理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
三、 实验步骤
1. 将图像内容读入内存;
2. 用Fourier变换算法,对图像作二维Fourier变换;
3. 将其幅度谱进行搬移,在图像中心显示;
4. 用Fourier系数的幅度进行Fourier反变换;
5. 用Fourier系数的相位进行Fourier反变换;
6. 比较4、5的结果,评价人眼对图像幅频特性和相频特性的敏感度。
7. 记录和整理实验报告。
四、 实验内容
J=imread('C:\Users\Gateway\Desktop\ͼƬ\number.jpg');
imshow(J);
I=rgb2gray(J);
fftI=fft2(I); %二维傅里叶变换
sfftI=fftshift(fftI); %直流分量移到频谱中心
figure;imshow(sfftI);
RR=real(sfftI); %取实部
II=imag(sfftI); %取虚部
A=sqrt(RR.^2+II.^2); %计算幅值
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255; %归一化
figure;
imshow(A); %显示图像频谱
另一种
J=imread('C:\Users\Gateway\Desktop\ͼƬ\number.jpg');
I=rgb2gray(J);
F=fft2(I); %¶þάÀëÉ¢¸µÀïÒ¶±ä»»
S=abs(F);
imshow(S,[]);
FC=fftshift(F);
imshow(abs(FC),[]);
S2=log(1+abs(FC));
figure;imshow(S2,[]);
原图
归一化后图像
实验七 图像增强—频域滤波
一、 实验目的
1.掌握怎样利用傅立叶变换进行频域滤波
2.掌握频域滤波的概念及方法
3.熟练掌握频域空间的各类滤波器
4.利用MATLAB程序进行频域滤波
二、实验原理
频域滤波分为低通滤波和高通滤波两类,对应的滤波器分别为低通滤波器和高通滤波器。频域低通过滤的基本思想:
G(u,v)=F(u,v)H(u,v)
F(u,v)是需要钝化图像的傅立叶变换形式,H(u,v)是选取的一个低通过滤器变换函数,G(u,v)是通过H(u,v)减少F(u,v)的高频部分来得到的结果,运用傅立叶逆变换得到钝化后的图像。
n阶巴特沃兹低通滤波器(BLPF)(在距离原点处出现截至频率)的传递函数为
与理想地通滤波器不同的是,巴特沃兹率通滤波器的传递函数并不是在处突然不连续。
高斯低通滤波器(GLPF)的传递函数为
其中,为标准差。
二、 实验步骤:
1.调入并显示所需的图片;
2.利用MATLAB提供的低通滤波器实现图像信号的滤波运算,并与空间滤波进行比较。
3.利用MATLAB提供的高通滤波器对图像进行处理。
4.记录和整理实验报告。
f1=imread('C:\Users\Gateway\Desktop\ͼƬ\camera.jpg');
f=rgb2gray(f1);
F=fft2(f);
S=fftshift(log(1+abs(F)));
figure;imshow(S,[]); %²úÉúƵÆ×ͼÏñ
h=fspecial('sobel');
figure;freqz2(h);
PQ=paddedsize(size(f));
H=freqz2(h,PQ(1),PQ(2));
H1=ifftshift(H);
figure;imshow(abs(H),[]);
Sobel边缘提取
f=imread('C:\Users\Gateway\Desktop\ͼƬ\dabao.jpg');
f=rgb2gray(f);
f=im2double(f);
[VSFAT]=edge(f,'sobel','vertical');
figure;imshow(f);
figure;imshow(VSFAT);
实验八 彩色图像处理
一、实验目的
使用MatLab 软件对图像进行彩色处理。使学生通过实验熟悉使用MatLab软件进行图像彩色处理的有关方法,并体会到图像彩色处理技术以及对图像处理的效果。
二、实验要求
要求学生能够完成彩色图像的分析,能正确讨论彩色图像的亮度、色调等性质;会对彩色图像进行直方图均衡,并能正确解释均衡处理后的结果;能够对单色图像进行伪彩色处理、利用多波长图像进行假彩色合成、进行单色图像的彩色变换。
三、实验步骤
(1) 彩色图像的分析
(2) 彩色图像的直方图均衡
(3) 假彩色处理
(4) 伪彩色处理1:灰度切片处理
(5) 彩色变换(选做)
四、实验内容
f=imread('C:\Users\Gateway\Desktop\ͼƬ\flower.tif');
figure;imshow(f);
fR=f(:,:,1); %获得红色分量
fG=f(:,:,2); %获得绿色分量
fB=f(:,:,3); %获得蓝色分量
figure;imshow(fR);
figure;imshow(fG);
figure;imshow(fB);
原图 红色分量
绿色分量 蓝色分量
%实现rgb图像转化为NTSC彩色空间的图像
f=imread('C:\Users\Gateway\Desktop\ͼƬ\flower.tif');
figure;imshow(f);
yiq_image=rgb2ntsc(f);
fY=yiq_image(:,:,1); %图像亮度
fI=yiq_image(:,:,2); %图像色调
fQ=yiq_image(:,:,3); %图像饱和度
figure;imshow(fY);
figure;imshow(fI);
figure;imshow(fQ);
亮度 色调
饱和度
f=imread('C:\Users\Gateway\Desktop\ͼƬ\flower.tif');
figure;imshow(f);
fR=histeq(fR,256); %对彩色图像的分量进行直方图均衡化
fG=histeq(fR,256);
fB=histeq(fR,256);
RGB_image=cat(3,fR,fG,fB); %将直方图均衡化后的彩色图像合并
figure;imshow(RGB_image);
f=imread('C:\Users\Gateway\Desktop\ͼƬ\flower.tif');
cut_1=imadjust(f,[0.0925 0.5],[0.0925 0.5]); %提取灰度在16-128之间像素
cut_2=imadjust(f,[0.5 1],[0.5 1]); %提取灰度在128-256间像素
figure,imshow(cut_1),colormap(hot) %显示图像cut-1,并用hot模型彩色化 figure,imshow(cut_2),colormap(cool)
16-128 128-256
六、思考题
1. 为什么经彩色直方图均衡后的图像除了对比度会有所增强外,还有色调的变化?
色调的增强具有特殊性。根据HIS模型表示法,色调对应一个角度且是循环的。如果对这个像素的色调值加一个常数,将会使每个目标的颜色在色谱上移动。当常数比较小时,一般会使彩色图像色调变“暖”或“冷”。常数比较大时。则有可能会使对彩色图像的感受发生比较激烈的变化。
2. 实验内容(3)的假彩色处理方案是否可以有多种?若有,请估计其它方案的可能结果。
3. 在实验内容(4)中,对于灰度切片处理的图像head.gif使用多少级切片比较合适?
实验九 图像分割
一、实验目的
使用MatLab 软件进行图像的分割。使学生通过实验体会一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的影响。
二、实验要求
要求学生能够自行评价各主要算子在无噪声条件下和噪声条件下的分割性能。能够掌握分割条件(阈值等)的选择。完成规定图像的处理并要求正确评价处理结果,能够从理论上作出合理的解释。
三、 实验步骤
(1)使用Roberts 算子的图像分割实验
(2)使用Prewitt 算子的图像分割实验
(3)使用Sobel 算子的图像分割实验
(4)使用LoG (拉普拉斯-高斯)算子的图像分割实验
四、实验内容
下面是使用sobel监测器对图像进行分割的MATLAB程序
f1=imread('C:\Users\Gateway\Desktop\ͼƬ\room.jpg');
figure;imshow(f1);
f=rgb2gray(f1);
[gv,t1]=edge(f,'sobel','vertical'); %使用edge函数对图像f提取垂直边缘
figure;imshow(gv);
[gb,t2]=edge(f,'sobel','horizontal'); %提取水平边缘
figure;imshow(gb)
w45=[-2 -1 0 ;-1 0 1;0 1 2]; %使用imfilter计算45°方向边缘
g45=imfilter(double(f),w45,'replicate');
T=0.3*max(abs(g45(:))); %设定阈值
g45=g45>=T; %进行阈值处理
figure;imshow(g45);
原图 垂直边缘提取
水平边缘提取 45阈值处理
256阈值处理
六、思考题/问答题
1. 评价一下Roberts 算子、Prewitt 算子、Sobel 算子对于噪声条件下边界检测的性能。
Roberts算子:边缘定位准,但是对噪声敏感。适用于边缘明显且噪声较少的图像分割。Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子,Robert算子图像处理后结果边缘不是很平滑。经分析,由于Robert算子通常会在图像边缘附近的区域内产生较宽的响应,故采用上述算子检测的边缘图像常需做细化处理,边缘定位的精度不是很高。
Prewitt算子:对噪声有抑制作用,抑制噪声的原理是通过像素平均,但是像素平均相当于对图像的低通滤波,所以Prewitt算子对边缘的定位不如Roberts算子。
Sobel算子:Sobel算子和Prewitt算子都是加权平均,但是Sobel算子认为,邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越远,产生的影响越小。
2. 为什么LoG梯度检测算子的处理结果不需要象Prewitt 等算子那样进行幅度组合?
3. 实验中所使用的四种算子所得到的边界有什么异同?
实验十 形态学运算
1、实验目的
学习常见的数学形态学运算基本方法,了解腐蚀、膨胀、开运算、闭运算取得的效果,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。
2、实验要求
利用MatLab工具箱中关于数学形态学运算的函数,计算本指导书中指定二值图像进行处理。
3、实验内容与步骤
1. 调入并显示图像Plane2.jpg;
2. 选取合适的阈值,得到二值化图像Plane2-2.jpg;
3. 设置结构元素;
4. 对得到的二值图像Plane2-2.jpg进行腐蚀运算;
5. 对得到的二值图像Plane2-2.jpg进行膨胀运算;
6. 对得到的二值图像Plane2-2.jpg进行开运算;
7. 对得到的二值图像Plane2-2.jpg进行闭运算;
8. 将两种处理方法的结果作比较;
4、实验程序
I=imread('C:\Users\Gateway\Desktop\ͼƬ\plane.jpg');
figure;imshow(I);
level=graythresh(I); %得到合适的阈值
bw=im2bw(I,level); %二值化
SE=strel('square',3); %设置膨胀结构元素
BW1=imdilate(bw,SE); %膨胀
SE1=strel('arbitrary',eye(5)); %设置腐蚀结构元素
BW2=imerode(bw,SE); %腐蚀
BW3=bwmorph(bw,'open'); %开运算
BW4=bwmorph(bw,'close'); %闭运算
figure;imshow(bw);
figure;imshow(BW1);
figure;imshow(BW2);
figure;imshow(BW3);
figure;imshow(BW4);
原图
二值化图像
膨胀
腐蚀
开运算
闭运算
5、思考题/问答题
1. 结合实验内容,评价腐蚀运算与膨胀运算的效果。
腐蚀操作会去掉物体的边缘点,细小物体所有的点都会被认为是边缘点,因此会整个被删去。再做膨胀时,留下来的大物体会变回原来的大小,而被删除的小物体则永远消失了。
膨胀操作会使物体的边界向外扩张,如果物体内部存在小空洞的话,经过膨胀操作这些洞将被补上,因而不再是边界了。再进行腐蚀操作时,外部边界将变回原来的样子,而这些内部空洞则永远消失了。
2. 结合实验内容,评价开运算与闭运算的效果。
先腐蚀后膨胀的过程称为开运算。用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。先膨胀后腐蚀的过程称为闭运算。用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。
通常,由于噪声的影响,图象在阈值化后所得到边界往往是很不平滑的,物体区域具有一些噪声孔,背景区域上散布着一些小的噪声物体。连续的开和闭运算可以有效地改善这种情况。有时需要经过多次腐蚀之后再加上相同次数的膨胀,才可以产生比
展开阅读全文