数字图像处理阈值分割.doc

上传人:wj 文档编号:4898011 上传时间:2023-05-07 格式:DOC 页数:7 大小:2.30MB
下载 相关 举报
数字图像处理阈值分割.doc_第1页
第1页 / 共7页
数字图像处理阈值分割.doc_第2页
第2页 / 共7页
数字图像处理阈值分割.doc_第3页
第3页 / 共7页
数字图像处理阈值分割.doc_第4页
第4页 / 共7页
数字图像处理阈值分割.doc_第5页
第5页 / 共7页
数字图像处理阈值分割.doc_第6页
第6页 / 共7页
数字图像处理阈值分割.doc_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字图像处理阈值分割.doc

《数字图像处理阈值分割.doc》由会员分享,可在线阅读,更多相关《数字图像处理阈值分割.doc(7页珍藏版)》请在冰点文库上搜索。

数字图像处理阈值分割.doc

计算机科学与通信工程学院

实验报告

课程

图像处理

实验题目

图像分割

1.引言

图像分割是一种重要的图像分析技术。

在对图像的研究和应用中,人们往往只对图像中的特定某一部分感兴趣,他们一般对应着图像中某些特定的区域。

为了识别它们,可以把他们从图像中分离提取出来。

2.基本知识

典型的图像分割方法可以分为基于阈值的方法、基于边缘的方法和基于区域的分割方法。

灰度阈值法将图片灰度划分为不同等级,用设置灰度阈值的方法确定有意义的区域。

它是一种最常用的并行区域技术,它是图像分割中应用数量最多的一类。

阈值分割方法实际上是输入图像f到输出图像g的如下变换:

其中,T为阈值,对于物体的图像元素g(i,j)=1,对于背景的图像元素g(i,j)=0。

由此可见,阈值分割算法的关键是确定阈值,如果能确定一个合适的阈值就可准确地将图像分割开来。

阈值确定后,将阈值与像素点的灰度值逐个进行比较,而且像素分割可对各像素并行地进行,分割的结果直接给出图像区域。

图像边缘是图像识别中抽取图像特征的重要属性。

是由于相邻像素间灰度值剧烈变化引起的。

图像中边缘处像素的灰度值不连续,这种不连续性可通过求导数来检测到。

对于阶跃状边缘,其位置对应一阶导数的极值点,对应二阶导数的过零点(零交叉点)。

因此常用微分算子进行边缘检测。

常用的一阶微分算子有Roberts算子、Prewitt算子和Sobel算子,二阶微分算子有Laplace算子和Kirsh算子等。

在实际中各种微分算子常用小区域模板来表示,微分运算是利用模板和图像卷积来实现。

这些算子对噪声敏感,只适合于噪声较小不太复杂的图像。

水域分割是借鉴了形态学理论的分割方法,其本质是利用了图像的区域特征进行分割图像。

将边缘检测与区域生长的优点相结合。

3.功能分析及设计

用全局阈值、OTSU及迭代法求阈值。

结果如图2,3所示

I=imread('i_boat_gray.bmp');

[width,height]=size(I);

%otsualgorithm

level=graythresh(I);

BW=im2bw(I,level);

figure

imshow(BW)

%globalthreshold

fori=1:

width

forj=1:

height

if(I(i,j)<80)

BW1(i,j)=0;

else

BW1(i,j)=1;

end

end

end

figure

imshow(BW1)

%迭代求阈值

I=double(I);

T=(min(I(:

))+max(I(:

)))/2;

done=false;

i=0;

while~done

r1=find(I<=T);

r2=find(I>T);

Tnew=(mean(I(r1))+mean(I(r2)))/2;

done=abs(Tnew-T)<1;

T=Tnew;

i=i+1;

end

I(r1)=0;

I(r2)=1;

Figure;

imshow(I)

用分水岭算法分割图像:

center1=-10;

center2=-center1;

dist=sqrt(2*(2*center1)^2);

radius=(dist/2)*1.4;

lims=[floor(center1-1.2*radius)ceil(center2+1.2*radius)];

[x,y]=meshgrid(lims

(1):

lims

(2));

bw1=sqrt((x-center1).^2+(y-center1).^2)<=radius;

bw2=sqrt((x-center2).^2+(y-center2).^2)<=radius;

bw=bw1|bw2;

figure,imshow(bw,'InitialMagnification','fit'),title('二进制图像')

D=bwdist(~bw);

figure,imshow(D,[],'InitialMagnification','fit')

title('距离变换')

D=-D;

D(~bw)=-Inf;

L=watershed(D);

rgb=label2rgb(L,'jet',[.5.5.5]);

figure,imshow(rgb,'InitialMagnification','fit')

title('分水岭方法')

Sobel、Prewitt、Roberts等算子的边缘提取算法。

a=imread('d:

\skull.png');

bw1=edge(a,'sobel');

bw2=edge(a,'prewitt');

bw3=edge(a,'roberts');

bw4=edge(a,'log');

figure

imshow(a)

figure

subplot(2,2,1)

imshow(bw1)

xlabel('soble')

subplot(2,2,2)

imshow(bw2)

xlabel('prewitt')

subplot(2,2,3)

imshow(bw3)

xlabel('roberts')

subplot(2,2,4)

imshow(bw4)

xlabel('log')

用形态学方法:

BW1=imread('circbw.tif');

figure

imshow(BW1)

SE=strel('arbitrary',eye(5));

BW2=imerode(BW1,SE);

figure

imshow(BW2)

BW3=imdilate(BW1,SE);

figure

imshow(BW3)

BW4=imopen(BW1,SE);

figure,imshow(BW4)

BW4=imclose(BW1,SE);

figure,imshow(BW4)

4.实验结果与分析

原图:

图1

图2

图3

图4用分水岭算法分割图像

图5三种算子分割原图

图6

图7

图8

图9

5.总结与体会

通过相关函数的调用增加了自己对于matlab的掌握,对数字图像处理有了更加熟悉的了解。

在学习过程中有不懂的地方便去询问同学,也从优秀的同学那里学到了许多东西。

但自己更应询问老师,从老师那里可以学到更多的东西。

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2