数字图像处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验名称:图像分割

所属课程:《数字图像处理》

实验类型:验证性实验

实验类别:专业

实验学时:3

一、实验目的

1.使用MatLab 软件进行图像的分割。

2.通过实验体会一些主要的分割算子对图像处理的效果。

3.探索各种因素对分割效果的影响。

二、实验原理及过程

1.实验背景

在对图像的研究和应用中,人们往往只对图像中的某些部分感兴趣,这些部分通常称为目标或者前景(其他不感兴趣的部分称为背景)。为了分析和辨识目标,需要将它们从背景中提取出来。从图像中提取目标的技术和过程就称为图像分割。图像分割是图像处理中一类重要的研究内容,其目的是把图像分成一些有意义、互不重叠的区域,分割结果的优劣将直接影响图像的后续处理。

作为图像分析、理解的基础,图像分割在诸多领域具有广泛的应用,例如基于内容的

图像检索、机器视觉、文字识别、指纹识别,以及生物医学图像处理方面的病变检测和识别,军事图像处理方面的地形匹配与目标制导,工业图像处理方面的无损探伤和非接触式检测等。另外,图像分割技术也已用于图像压缩编码,近年来发展起来的基于内容的视频编码(如MPEG-4)同样离不开图像分割的结果。

2.实验设计指标

✧能够自行评价各主要算子在无噪声条件下和噪声条件下的分割性能。

✧能够掌握分割条件(阈值等)的选择。

✧完成规定图像的处理并要求正确评价处理结果

✧能够从理论上作出合理的解释。

3.实验要求(设计要求)

(1)使用Roberts 算子的图像分割实验

调入并显示图像;使用Roberts 算子对图像进行边缘检测处理; Roberts 算子为一对模板:

相应的矩阵为:rh = [0 1;-1 0]; rv = [1 0;0 -1];这里的rh 为水平Roberts 算子,rv为垂直Roberts 算子。分别显示处理后的水平边界和垂直边界检测结果;用“欧几里德距离”和“街区距离”方式计算梯度的模,并显示检测结果;对于检测结果进行二值化处理,并显示处理结果;

注意:

✧先做检测结果的直方图,参考直方图中灰度的分布尝试确定阈值。

✧应反复调节阈值的大小,直至二值化的效果最为满意为止。

✧分别显示处理后的水平边界和垂直边界检测结果。

✧将处理结果转化为“白底黑线条”的方式。

✧给图像加上零均值的高斯噪声;对于噪声图像重复步骤b~f。

(2)使用Prewitt 算子的图像分割实验

使用Prewitt 算子进行内容(1)中的全部步骤。

(3)使用Sobel 算子的图像分割实验

使用Sobel 算子进行内容(1)中的全部步骤。

(4)使用LoG (拉普拉斯-高斯)算子的图像分割实验

使用LoG (拉普拉斯-高斯)算子进行内容(1)中的全部步骤。提示:

✧处理后可以直接显示处理结果,无须另外计算梯度的模。

✧注意调节噪声的强度以及LoG (拉普拉斯-高斯)算子的参数,观察处理结果。

(5) 打印全部结果并进行小组讨论。

4.实验(设计)仪器设备和材料清单

✧PC计算机

✧MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox)

✧实验所需要的图片

5.实验源代码:

✧Roberts 算子、Prewitt 算子、Sobel 算子的图像分割实验

I=imread('F:\matlab作业\1.jpg'); %读取图像

I1=im2double(I); %将彩图序列变成双精度

I2=rgb2gray(I1); %将彩色图变成灰色图

[thr, sorh, keepapp]=ddencmp('den','wv',I2);

I3=wdencmp('gbl',I2,'sym4',2,thr,sorh,keepapp); %小波除噪I4=medfilt2(I3,[9 9]); %中值滤波

I5=imresize(I4,0.2,'bicubic'); %图像大小

BW1=edge(I5,'sobel'); %sobel图像边缘提取

BW2=edge(I5,'roberts'); %roberts图像边缘提取

BW3=edge(I5,'prewitt'); %prewitt图像边缘提取

BW4=edge(I5,'log'); %log图像边缘提取

BW5=edge(I5,'canny'); %canny图像边缘提取

h=fspecial('gaussian',5); %高斯滤波

BW6=edge(I5,'zerocross',[ ],h); %zerocross图像边缘提取

figure;

subplot(1,3,1); %图划分为一行三幅图,第一幅图

imshow(I2); %绘图

figure;

subplot(1,3,1);

imshow(BW1);

title('Sobel算子');

subplot(1,3,2);

imshow(BW2);

title('Roberts算子');

subplot(1,3,3);

imshow(BW3);

title('Prewitt算子');

拉普拉斯-高斯算子的图像分割实验:

I = imread('F:\matlab作业\1.jpg'); figure(1);

imshow(I);

title('Original Image');

H = fspecial('unsharp');

sharpened = imfilter(I,H,'replicate'); figure(2);

imshow(sharpened);

title('Sharpened Image');

6.调试及结果测试

相关文档
最新文档