实验六图像分割Word格式文档下载.docx

上传人:b****6 文档编号:21461697 上传时间:2023-01-30 格式:DOCX 页数:19 大小:400.11KB
下载 相关 举报
实验六图像分割Word格式文档下载.docx_第1页
第1页 / 共19页
实验六图像分割Word格式文档下载.docx_第2页
第2页 / 共19页
实验六图像分割Word格式文档下载.docx_第3页
第3页 / 共19页
实验六图像分割Word格式文档下载.docx_第4页
第4页 / 共19页
实验六图像分割Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

实验六图像分割Word格式文档下载.docx

《实验六图像分割Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验六图像分割Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

实验六图像分割Word格式文档下载.docx

sobel'

'

vertical'

);

%使用edge函数对图像f提取垂直边缘

imshow(gv)

[gb,t2]=edge(f,'

sobel'

horizontal'

);

%使用edge函数对图像f提取水平边缘

figure,imshow(gb)

w45=[-2-10;

-101;

012];

%指定模版使用imfilter计算45度方向得边缘

g45=imfiIter(double(f),w45,'

relicate'

T=0、3*max(abs(g45(:

)));

%设定阈值

g45=g45>

=T;

%进行阈值处理

figure,imshow(g45);

在函数中使用’prewitt'

与’roberts,得过程,类似于使用sobel边缘检测器得过程。

三、实验结果及结果分析

(1)使用Roberts算子得图像分割实验实验结果:

g45

⑴欧几里得距离计算梯度模二值化

⑵街区距离计算梯度模二值化

实验结果分析:

ROberts算子利用局部差分算子寻找边缘,边缘定位精度比较高,但容易丢失一部分边缘,同时由于图像没经过平滑处理,因此不具备抑制噪声能力。

该算子对具有陡峭边缘且噪声少得图像效果较好。

(2)使用Prew1tt算子得图像分割实验

实验结果:

图5、Prewitt算子得图像分割

Prewitt算子先对图像做加权平滑处理,然后再做微分运算,所不同得就是平滑部分得权值有些差异,因此它们对噪声有一定得抑制能力。

(3)使用Sobel算子得图像分割实验实验结果:

图6、Sobel算子得图像分割

Sobel算子与Prewitt算子一样,都就是先对图像做加权平滑处理,然后再做微分运算,因此它们对噪声有一定得抑制能力。

比较实验结果可以发现,Sobel算子比Prewitt算子

在噪声抑制方面略胜一筹,但不能排除检测结果中出现得虚假边缘。

虽然这两个算子边缘定位效果不错,但检测出得边缘容易出现多像素得宽度。

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

.2

它就是无方向得二阶微分算子,对图像中得阶跃型边缘定位准确,该算它使噪声成分得到加强.这两个特性使得该算子容易丢失一部分边缘得方向信息,造成一些不连续得检测边缘。

LoG算子,该算子克服了拉普拉斯算子抗噪声性能比较差得缺点,但就是在抑制噪声得

同时也可能将原有得比较尖锐得边缘平滑掉了.

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

使用sobel、prewi11与roberts算子对图像进行分割实验。

四、实验中遇到问题及解决方法

Prewitt算子、Sobel算子对于噪声条件下边界检测得

1、评价一下Roberts算子、性能.

答:

Roberts算子采用对角线方向相邻两像素之差近似梯度幅值检测边缘.检测水平与

垂直边缘得效果好于斜向边缘,定位精度高,对噪声敏感。

Sobel算子根据像素点上下、

左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。

对噪声具有平滑作用,提供较为精确得边缘方向信息,边缘定位精度不够高.当对精度要求不就是很高时,就是一种较为常用得边缘检测方法。

Prewitt算子利用像素点上下、左右邻点灰度差,在边缘处达到极值检测边缘。

对噪声具有平滑作用,定位精度不够高。

2.实验中所使用得四种算子所得到得边界有什么异同?

算子得存在就就是对这种导数分割原理进行得实例化计算,就是为了在计算过程中直接使用得一种计算单位。

Roberts算子:

边缘定位准,但就是对噪声敏感。

适用于边缘明显且噪声较少得图像分割。

Roberts边缘检测算子就是一种利用局部差分算子寻找边缘得算子‘Robert算子图像处理后

结果边缘不就是很平滑。

经分析,由于Robert算子通常会在图像边缘附近得区域内产生

较宽得响应,故采用上述算子检测得边缘图像常需做细化处理,边缘定位得精度不就是很高.

Prewitt算子:

对噪声有抑制作用,抑制噪声得原理就是通过像素平均,但就是像素平均相当于对图像得低通滤波,所以Prewi11算子对边缘得定位不如ROberts算子。

Sobel算子:

Sobel算子与Prewitt算子都就是加权平均,但就是Sobel算子认为,邻域得像素对当前像素产生得影响不就是等价得,所以距离不同得像素具有不同得权值,对算子结果产生得影响也不同。

一般来说,距离越远,产生得影响越小。

IsotropicSobel算子:

加权平均算子,权值反比于邻点与中心点得距离,当沿不同方向检测边缘时梯度幅度一致,就就是通常所说得各向同性.

LapIacian算子:

这就是二阶微分算子.其具有各向同性,即与坐标轴方向无关,坐标轴旋转后梯度结果不变。

但就是,其对噪声比较敏感,所以,图像一般先经过平滑处理,因为平滑处

理也就是用模板进行得,所以,通常得分割算法都就是把Laplacian算子与平滑算子结合起来生成一个新得模板.

Laplacian算子一般不以其原始形式用于边缘检测,因为其作为一个二阶导数,LapIacian算子对噪声具有无法接受得敏感性;

同时其幅值产生算边缘,这就是复杂得分割不希望有得结

果;

最后LapIacian算子不能检测边缘得方向;

所以Laplacian在分割中所起得作用包括:

(1)利用它得零交叉性质进行边缘定位;

(2)确定一个像素就是在一条边缘暗得一面还就是亮得一面;

一般使用得就是高斯型拉普拉斯算子(LaplacianofaGaussian,LoG),由于

二阶导数就是线性运算,利用LoG卷积一幅图像与首先使用高斯型平滑函数卷积改图像,然后计算所得结果得拉普拉斯就是一样得。

所以在LoG公式中使用高斯函数得目得就就是

对图像进行平滑处理,使用Laplacian算子得目得就是提供一幅用零交叉确定边缘位置得图像;

图像得平滑处理减少了噪声得影响并且它得主要作用还就是抵消由Laplacian算子得二

阶导数引起得逐渐增加得噪声影响。

五、实验心得体会

掌握分割条件(阈值等)得选择。

完成规定

通过这个实验,我熟练学会了利用MatLab软件进行图像得分割。

在通过实验体会到了一些主要得分割算子对图像处理得效果,以及各种因素对分割效果得影响。

在评价各主要算子在无噪声条件下与噪声条件下得分割性能下图像得处理并评价处理结果。

六、源程序清单

%%

%1、使用Roberts算子得图像分割实验

I=imread('room、tif'

);

rh=:

-10;

01:

;

rv=[0—1;

10];

ate'

');

g45=imfilter(double(I),rh,'

replicg135=imfilter(double(I),rv,'

replicate

subplot(3,2,1);

imshow(g45,[]);

title('g45'

subplot(32

imshow(g135,[

tit1e('

g1

%计算梯度模

(1)欧几里得距离计算梯度模

OD=sqrt(g45、人2+g135、人2);

subplot(323);

imshow(OD,[]);

title('

(1)欧几里得距离计算梯度模'

T=0、1*max(OD(:

));

BWOD=OD>

T;

subp1ot(324);

imshow(BWOD);

(1)欧几里得距离计算梯度模二值化'

(2)街区距离计算梯度摸

);

2);

]);

35'

JD=abs(g45)+abs(g135);

subplot(325);

imshow(JD,[]);

title('

(2)街区距离计算梯度模'

);

T=0、1*max(JD(:

));

BWDD=OD〉T;

subplot(326);

imshow(BWOD;

(2)街区距离计算梯度模二值化');

%%

%2、使用Prewitt算子得图像分割实验

I=imread('

r

rh=[—1-1

oom、tif'

—1;

000;

11

rv=[—101

g45=imfilt

-101;

er(doub

le

10(I)

1];

1];

rh,/

g135=imfilte

subplot(3,2,1);

imshow(g45,[]);

title('

g45'

subplot(322);

(double

I),rv,'

r

replicate'

ep1icate'

imshow(g135,[]);

title('

g135'

%

(1)欧几里得距离计算梯度模

OD=sqrt(g45、Q+g135、人2);

subplot(323);

imshow(OD,[]);

title('

(1)欧几里得距离计算梯度模'

T=0、1*max(OD(:

subp1ot(324);

imshow(BWOD);

title(/(I)欧几里得距离计算梯度模二值化'

%

(2)街区距离计算梯度模

JD=abs(g45)+abs(g135);

subplot(325);

imshow(JD,[]);

title('

(2)街区距离计算梯度模'

T=0、1*max(JD(:

));

BWOD=OD〉T;

subp1ot(326);

imshow(BWOD);

title('

(2)街区距离计算梯度模二值化'

%3、使用Sobel算子得图像分割实验

subplot(322);

(325);

(JD,:

(2)街区距离计算梯度模'

*max(JD(:

));

BWOD=OD>

T;

subplot(326);

mshow(BWOD);

le('

(2)街区距离计算梯度模二值化'

tit

使用LoG(拉普拉斯-高斯)算子得图像分割实验ead('

room、

[gv,t1]=edge(f,subplot(1,3,1)[gb,t2]=edge(f,subplot(1,w45=[-2-

%4、

f=imr

3,2);

10;

-101

tif/);

'

1og'

,'

Vertica;

imshow(g'

log'

hoimshow(gb);

012];

V);

trizo

1/);

%使用edge函数对图像f提取垂直边缘itle(/ntal'

);

('

gb/

i

gv'

%使用edge函数对图像f提取水平边缘

title

%指定模版使用

mfilter计算45度方向得边缘

g45=imfiltT=0、3*max

er(double(f),w4

abs(g45(:

)));

%进行阈值处理

5,'

rep1icate'

g45=g45>

=T;

subp1ot(1,3,3);

imshow(g45)

%%

%5打印全部结果并进行讨论。

%使用sobel、prewitt与robert

f=imread('

room、tif/);

]=edge(f,'

sobel/,/vegv);

t

[gv,t1

subplot(1,3,1

[gb,t2:

=edgesubp1ot(1,3,2)

(f

mshow

'

sobelimshow

title('

g45'

s算子对图像进行分割实验。

w45=[-2-10;

g45=imfi1ter(do

T=0、3*max(abs(g45

g45=g45〉=T;

uble(f

(:

))

rtica1'

%使用edge函数对图像f提取垂直边缘

itle('

sobe1(gV)'

)'

ter计算4

horizontal'

gb);

tit1e('

sobel(gb

12];

%指定模版使用imfil

w45,'

replic

);

ate'

5度方向得边缘

subp1ot(1,3,3);

ims

%使用prewitt算子对图像进行分割实验。

f=imread('

room

[gv2,t3]=edg

how(g45);

titl

e('

sobel

g45)'

、tif'

(f,'

prewitt

rtic

%使用

edge

函数对图像f提取垂直边缘

subplot(1,3,

1)

[gb2,t4]=edg

subplot(1,3,w45=[-2-1

0;

imshow(gv2);

title

(f,'

prewitt'

'

horizontal'

im

-1

/prewi

tt

show(gb2);

tit1e(/prewitt

012];

%指定模版使用imfilter

(gv)'

%使用

(gb)'

计算45

edge

函数对图像f提取水平边缘

度方向得边缘

g45=imfi1teT=0、3*max(absg45=g45〉=T;

subplot

(f),w45,/replicate'

));

1,3,3);

imshow(g45);

r(dou

(g45

:

0/

pre

witt(g45)/);

%使用roberts算子对图像进行分割实验。

f=imread('

[gv3,t5]=edge

f,/roberts

、tif

ver

ical'

%使用edge函数对图像f提取垂直边缘

subplot(1,3,

[gb3,t6:

=ed缘

1);

imshow(gv3);

titlege(f,'

roberts

ro

berts(gv)/);

/horizonta1'

%使用edge函数对图像f提取水平边

subplot(1,3,2);

w45=[—2—101

012];

%指定模版使用

icate'

imshow(gb3);

title(

01

oberts(g

imfil

b)'

ter计算45度方向得边缘

g45=imfilter(doubT=0、3*max(abs(g45g45=g45>

subplot(1,3,3);

imshow(g45);

%%

%图像像素值得标定

I=imread('

roo

rh=:

-10;

0

rv=[0-1;

1

f),w45,'

repl

)));

m、tif'

1];

0];

g45=imfilter(subplot(121);

imshow(g45);

title('未标定'cg45=(g45-min

subplot(122);

imshow(cg45);

title('

已标定'

(double(I),rh,

(g45(:

)))/(ma

title

ep

x(g

(/ro

icate

berts

45(:

))-min

g45)'

(g45(:

)));

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1