数字图像处理课设程设计基于区域生长的图像分割.docx
- 文档编号:9786302
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:11
- 大小:521.48KB
数字图像处理课设程设计基于区域生长的图像分割.docx
《数字图像处理课设程设计基于区域生长的图像分割.docx》由会员分享,可在线阅读,更多相关《数字图像处理课设程设计基于区域生长的图像分割.docx(11页珍藏版)》请在冰点文库上搜索。
数字图像处理课设程设计基于区域生长的图像分割
成绩
南京工程学院
课程设计说明书(论文)
题目基于区域生长的图像分割
课程名称数字图像处理
院(系、部、中心)通信工程学院
专业
班级
学生姓名
学号
设计地点
指导教师
设计起止时间:
2010年6月28日至2010年7月2日
【摘要】
图像分割的目的是将图像划分为不同的区域,基于区域生长是以直接找寻区域为基础的分割技术。
区域生长是一种根据事先定义的准则将像素或子区域聚合成为更大的区域的过程。
基本方法是以一组“种子”点开始,将与种子点性质相似(诸如灰度级或衍射的特定范围)的相邻像素附加到生长区域的每个种子上。
区域生长的一个问题是用公式描述一个终止规则。
基本上,在没有像素满足加入某个区域的条件时,区域生长就会停止。
在此次课程设计中,在算法的设计上充分反映了这一点。
在遍历图像的过程中调用函数testnei,测试i,j点处的邻域满足条件的像素。
将每次新增长的种子点作为下次遍历的中心点,直到区域不再生长。
关键字:
区域生长种子点分割
一、课程设计名称
基于区域生长的图像分割
二、课程设计目标
1、通过本次数字图像处理课程设计,加深我对数字图像处理的基本原理与方法的认识,提高了我应用数字图像处理的方法解决实际问题的能力,达到理论与实际应用的结合。
2、通过课程设计,能够熟练运用Matlab完成图像处理任务。
三、总体设计
3.1总体设计要点概括
区域生长是一种根据事先定义的准则将像素或子区域聚合成更大区域的过程。
基本方法是以一组种子点开始,将与种子性质相似的相邻像素附加到生长区域的每个种子上。
区域生长算法的重点是:
Ø种子点的选取
Ø生长准则的确定
3.2算法流程设计
(1)图像读取:
f=imread('chrom.bmp');
figure
imshow(f);
title('源图像');
(2)以种子点对原图像二值分割:
seed=220;
S=abs(double(f)-double(seed))<20;%以初始种子点进行二值图像分割;
figure
imshow(S);
title('初始种子点');
(3)以种子点进行区域生长:
以种子点所在位置开始遍历,当判断满足种子点条件时调用函数:
functionA=neitest(i,j,f,T)%返回当前(i,j)位置种子点的
S=S|temp;%更新当前位置的8邻域满足阈值条件的点;使S中始终加入最近的种子点。
最终循环条件截止条件:
if(sum(sum(abs(double(S)-double(sd))))==0)%当前一次的种子加入点数和本次的相同时说明生长完毕,种子不再生长;
break;
end
(4)对生长完毕的图像进行膨胀操作:
B=[111;111;111];
S=imdilate(S,B);
figure
imshow(S)
title('膨胀后的图像')
(5)对膨胀后的图像进行中值滤波:
C=medfilt2(S,[77]);
figure
imshow(C)
title('经过中值滤波后的图像');
四、功能描述
1、对图像进行种子点的选取,并进行阈值分割操作,在种子点的选取上取其对象图像的平均值允许其灰度值值在±20范围内。
通过图像能够观察所选出的种子点。
2、函数functionA=neitest(i,j,f,T)能够对当前(i,j)坐标点像素进行判断,在其8邻接的像素点上满足阈值条件的点坐标将通过A返回。
3、能够对每次新增的种子点进行判断其周围点的可行性,用循环方法不断将新增的种子点加入区域,并用阈值条件进行生长。
4、对区域生长后的图像进行膨胀操作处理,使得在对象图像中灰度值较高的密集点区域变得更大。
防止断线,对对象图像中的瑕点更减少,视觉效果更好。
5、再对膨胀后的图像进行中值滤波处理,使得对象图像中的瑕点进一步减少,对象图像更加连续,几乎感觉不到瑕点的存在。
五、测试结果与分析
1、读写原图
f=imread('chrom.bmp');
figure
imshow(f);
title('源图像');
2、对图像进行种子点的选取,Seed=220,并对其进行逻辑阈值分割
Svalue=220;
S=(abs(double(f)-double(Svalue))<10);
imshow(S);
3、按照上图图像选出的种子点对图像进行区域生长,按照阈值T=40,每次运算只进行区域生长中的新种子点进行,判断生长停止条件为本次生长和上次生长后的新增种子点为0
4、对区域生长后的图像进行膨胀
B=[111;111;111];
S=imdilate(S,B);
figure
imshow(S)
title('膨胀后的图像');
5、对上面的图像进行中值滤波处理,使对象图像中的瑕点大大减少,真强图像的实际效果。
C=medfilt2(S,[77]);
figure
imshow(C)
title('经过中值滤波后的图像');
六、课程设计总结
经过一个学期对数字图像处理课程的学习,我能够掌握数字图像处理的基本原理,对图像的数字处理有了进一步的认识,能够应用数字图像处理软件对图像进行分析处理。
本次课程设计题目是基于区域生长的图像分割,一种根据事先定义的准则将像素或子区域聚合成更大区域的过程。
基本方法是以一组种子点开始,将与种子性质相似的相邻像素附加到生长区域的每个种子上。
区域生长算法的重点是种子点的选择和生长准则的确定。
在程序设计上实现了能够记录每次种子点生长时新增的种子点,在下次的生长过程中以上次新增的种子点继续生长。
当没用新增种子点时标明生长完成,此时终止生长条件。
在课程设计期间,遇到的最主要问题是:
1、如何记录当前的新增种子点以及以新增种子点进入下次的生长过程。
2、区域生长终止条件程序如何设计等。
但经过反复的推敲,对区域生长原理的不断理解,最终问题得以解决。
回顾这一周的课程设计,此次课程设计增强了自身的实际编程能力,对数字图像处理的原理有了更进一步的掌握。
本次课程设计收获很大,达到课程设计目的。
七、参考文献:
[1]冈萨雷斯等著,阮秋琦等译.《数字图像处理》(第二版).电子工业出版社,2007
[2]冈萨雷斯等,《数字图像处理》(Matlab版).电子工业出版社,2005
[3]何东健,《数字图像处理》.西安电子科技大学出版社,2003
[4]柴晓光,岑宝炽.民用指纹识别技术[M].北京:
人民邮电出版社
八、源程序:
neitest.m文件
functionA=neitest(i,j,f,T)
[x,y]=size(f);
A=zeros(size(f));
if(i>1&i form=-1: 1: 1 forn=-1: 1: 1 if(abs(double(f(i+m,j+n))-double(f(i,j))) %查找8领域里面满足阈值条件的点 A(i+m,j+n)=1; end end end end main.m文件 clear; closeall; clc; f=imread('chrom.bmp'); figure imshow(f,[]); title('源图像'); [M,N]=size(f); seed=220; T=75; S=abs(double(f)-double(seed))<20;%初始种子点; figure imshow(S); title('初始种子点'); add=S; while1 flag=zeros(size(f)); fori=1: M forj=1: N if(add(i,j)==1) temp=neitest(i,j,f,T);%返回当前种子点的8邻域满足条件的点; S=S|temp;%更新S中的种子点个数; flag=flag|temp; end end end add=flag; if(sum(sum(abs(double(S)-double(sd))))==0)%判断终止条 break;件: 种子不再生长; end end figure imshow(S) title('生长后的图像'); B=[111;111;111]; S=imdilate(S,B); figure imshow(S) title('膨胀后的图像'); C=medfilt2(S,[77]); figure imshow(C) title('经过中值滤波后的图像');
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 课设程 设计 基于 区域 生长 图像 分割