视网膜血管分割系统设计与实现技术研究毕业论文设计

上传人:痛*** 文档编号:44666048 上传时间:2021-12-05 格式:DOC 页数:30 大小:526KB
收藏 版权申诉 举报 下载
视网膜血管分割系统设计与实现技术研究毕业论文设计_第1页
第1页 / 共30页
视网膜血管分割系统设计与实现技术研究毕业论文设计_第2页
第2页 / 共30页
视网膜血管分割系统设计与实现技术研究毕业论文设计_第3页
第3页 / 共30页
资源描述:

《视网膜血管分割系统设计与实现技术研究毕业论文设计》由会员分享,可在线阅读,更多相关《视网膜血管分割系统设计与实现技术研究毕业论文设计(30页珍藏版)》请在装配图网上搜索。

1、1视网膜血管分割系统设计与实现技术研究视网膜血管分割系统设计与实现技术研究 摘摘 要要 视网膜血管检测作为图像处理的一个应用在临床医学中发挥着愈来愈重要的作用。基于图像处理的血管检测方法主要包括分割技术、跟踪技术和拟合技术。本文主要致力于研究基于采用 Canny 算子与数学形态学滤波相结合的方法进行自适应图像分割算法及其实现技术。该研究的主要工作包括:1)综述了公开报道的各种视网膜血管检测方法;2)研究了 Canny 算子与数学形态学滤波相结合的方法算法及其实现技术;3)通过 VC+6.0 编程实现了 Canny 算子与数学形态学滤波相结合的方法算法进行视网膜血管提取;4)通过实验验证了算法的

2、有效性。关键词:视网膜图像,血管检测,图像分割,Canny,数学形态学2MINIMAL-PATH BASED APPROACH TO DETECTION OF RETINAL VESSELSABSTRACT As an application of image processing, the detection of retinal vessels plays more and more important role in clinical medicine. The main methods of vessel detection include segmentation technique

3、, tracking techniques and fitting techniques. This thesis arms to study the minimal-path based tracking algorithm and the corresponding implementation techniques. The main contributions are the follows: 1) presented a brief review of various published detection methods of retinal vessels; 2) discuss

4、ed the minimal-path algorithms and their implementations; 3) realized the extraction of retinal vessels based on Dijkstra algorithm, programming with VC+6.0; 4) evaluated the performance of minimal-path algorithm by experiments.Key Words: retinal image, vessel detection, image segmentation, Canny, M

5、athematical Morphology 3毕业设计(论文)原创性声明和使用授权说明毕业设计(论文)原创性声明和使用授权说明原创性声明原创性声明本人郑重承诺:所呈交的毕业设计(论文) ,是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(

6、论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 4目 录摘摘 要要 .3ABSTRACT.4第第 1 1 章章 绪论绪论 .7第第 2 2 章章 设计方案设计方案 .82.1 图像信息的采集图像信息的采集.82.1.1采集的过程采集的过程.82.1.2 图像命名规则图像命名规则.82.2 数字图像预处理数字图像预处理.82.2.1 灰度化处理灰度化处理.92.2.2 将

7、掌纹图像二值化将掌纹图像二值化.92.2.3 掌纹图像定位点的自动检测掌纹图像定位点的自动检测.92.2.4 旋转转正方法旋转转正方法.112.2.5 掌纹提取方法掌纹提取方法.112.3 对图像进行特征提取对图像进行特征提取.122.3.1 Gabor变换变换.122.3.2 不变矩不变矩.132.4 对图像进行分类识别对图像进行分类识别.14第第 3 3 章章 实验结果实验结果 .153.13.1 实验结果实验结果.153.23.2 研究成果研究成果.15第第 4 4 章章 结结 论论 .164.14.1 总结总结.164.24.2 工作展望工作展望.16参考文献参考文献 .17附录附录

8、1 1 掌纹自动识别系统掌纹自动识别系统 .18附录附录 2 2 掌纹图像预处理掌纹图像预处理 .21附录附录 3 3 掌纹特征掌纹特征 GABORGABOR 变换和特征提取变换和特征提取 .23致致 谢谢 .26数据库图像资料数据库图像资料 .27浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告5第第 1 1 章章 绪绪 论论1.11.1 本课题研究的目的及意义本课题研究的目的及意义视网膜血管是人体唯一可以在活体使用非创伤性手段直接观察到的血管,许多全身性血管病以及代谢性疾病均可使眼底血管受到不同程度的侵犯,特别是心、脑、肾等与血管有关的器官发生病变,眼底血管的改变在一

9、定程度上可反映病变的程度1。临床上,视网膜血管网络对高血压、糖尿病、动脉硬化、肾炎等疾病的诊断、治疗、愈后评价都具有重要意义2-3。另外,视网膜血管作为一种人体生物特征,其结构稳定,隐蔽性强,在身份鉴别等高层次安全保密方面有重要的应用前景。由于硬件限制,视网膜图像较明显地表现出以下特点:光照不均匀;血管与背景的对比度不强;图像噪声点多。这导致采用常用的图像处理方法很难分割出满意的效果,寻找合适的视网膜血管提取方法是难点所在4。目前视网膜血管的检测方法已有不少,但是基于 Canny 算子与数学形态学滤波相结合的方法算法尚未见发表。本文就重点研究基于 Canny 算子与数学形态学滤波相结合的视网膜

10、血管检测算法。基于 Canny 边缘检测算子的血管分割算法。Canny 算子具有良好的多尺度特性,已广泛地用于图像边缘检测。该方法既可有效地抑制图像中的噪声,有可保持边缘的连通性,是一种较理想的边缘检测算子。无论采用何种边缘检测算法都难以完全消除噪声的影响。为提高边缘检测的有效性,该研究将探讨基于数学形态学的后处理算法,已提取真实的血管网络。1.21.2 相关研究工作相关研究工作图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。图象的边缘部分集中了图象的大部分信息,图象边缘的确定与提取对于

11、整个图象场景的识别与理解是非常重要的,同时也是图象浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告6分割所依赖的重要特征,边缘检测主要是图象的灰度变化的度量、检测和定位。图像边缘检测算法在过去已经被许多人提出过,并且这些人的算法都有着很多不一样的地方。大致可以分为两类,(1)基于梯度的边缘检测算法,(2)基于零点交叉边缘检测算法。主要具体的有 Sobel,Reberts,Laplacian,LOG 等这些算法。1.2.11.2.1 基于基于 LaplacianLaplacian 算子的视网膜图像的分割方法算子的视网膜图像的分割方法Laplacian 算子是常用的边缘检测算

12、子。拉普拉斯算子是最简单的各向同性微分算子,具有旋转不变性。一个二维图像函数的拉普拉斯变换是各向同性的二阶导数。另外,拉普拉斯算子还可以表示成模板的形式,如图1-1所示。图1-1(a)表示离散拉普拉斯算子的模板,图1-1(b)表示其扩展模板,从模板形式容易看出,如果在图像中一个较暗的区域中出现了一个亮点,那么用拉普拉斯运算就会使这个亮点变得更亮。因为图像中的边缘就是那些灰度发生跳变的区域,所以拉普拉斯锐化模板在边缘检测中很有用。一般增强技术对于陡峭的边缘和缓慢变化的边缘很难确定其边缘线的位置。但此算子却可用二次微分正峰和负峰之间的过零点来确定,对孤立点或端点更为敏感,因此特别适用于以突出图像中

13、的孤立点、孤立线或线端点为目的的场合。 1-1(a) 1-1(b)1.2.21.2.2 基于基于 SobelSobel 算子的视网膜图像的分割方法算子的视网膜图像的分割方法Sobel 算子在图像上求出二维的空间梯度,和梯度高的区域与边缘的区域相浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告7一致。Sobel 算子通常用于求输入的灰度级图像的每一个的近似的绝对梯度。Sobel 模板设计是用来在图像的垂直和水平方向最大的限度去反映边缘,这些方向性的边缘最后会汇合在一起的。基于 Sobel 算子的模板是1.2.31.2.3 基于基于 LOGLOG 算子的视网膜图像的分割方法算

14、子的视网膜图像的分割方法这个算子可以说是 Laplacian 的改进版,因为 Laplacian 其他的梯度算子一样,会增强图像中的噪声。而 LOG 算子比 Laplacian 算子多做的就是它是先对图像进行了 Gauss 平滑。通过 Gauss 平滑除去图像噪声,然后再进行边缘的检测,这样做的效果会比较好。下面是 LOG 的 5*5 的模板。浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告8第第 2 2 章章 设计方案设计方案图像边缘提取一般划分为视网膜图像采集、预处理、算法处理、保存处理图片几个过程。图像采集主要完成视网膜原始图像的获取及保存任务,然后经过预处理阶段进

15、行图像的去噪、平滑等操作,形成标准视网膜数据库,再对这些数据库中的图像进行算法处理,然后保存处理以后的图片以进行不同的算法之间的比较。2.12.1 图像信息的采集图像信息的采集我们采用 Nommyd-7 免散瞳眼底相机作为视网膜图像信息采集工具。Nommyd-7 免散瞳眼底相机、扫描图像类型真彩色图像、图像存储格式 BMP 格式、分辨率 565584。随机选择 10 个学生,对他们的左眼和右眼分别各采集 5 对视网膜图像,建立视网膜图像数据库。2.1.12.1.1 采集的过程采集的过程以一个人采集为例:第一步,将 Nommyd-7 免散瞳眼底相机跟计算机连接好。第二步,将一只眼睛对准相机上。第

16、三步,开始拍摄,将拍摄以后的图像以 bmp 的格式保存下来。2.1.22.1.2 图像命名规则图像命名规则采集到的图像需要采用统一的命名规则,经过一定的组织才能最终成为标准数据库。具体命名方法如下:每幅图像用二个字段表示 ,即表示为 AB. bmp 的形式。A表示被采集者的姓名的第一个字母(如果出现重复的时候,再在后面加数字,表示第几个重复的) 。B 区分采集人的左右 ,左眼用“L”表示 ,右眼用“R”浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告9表示;例如,陈红用右眼拍摄,命名为:chR.bmp。如果有第二个陈红来拍摄右眼的视网膜,命名为:ch1R.bmp。这样命名

17、,对于较小的环境而言,是有好处的,可以直接通过命名,得知这是谁的视网膜。同时,也存在缺点,当被采集者的数量增大的时候,就会失去上面的优势。2.22.2 数字图像预处理数字图像预处理由于 Canny 算子这个算法本身就是根据灰度值的变化来确定某一点是否是边缘,但是我们从相机中得到的是真彩色图。所以,在进行正常的边缘识别的过程中一定要进行灰度话处理。这也是我们这个系统第一步要做的事情。2.2.12.2.1 灰度化处理灰度化处理由彩色转化为灰度的过程叫做灰度化处理,它是使 RGB 模型中的 R=G=B。转换后的黑白图像的一个像素用一个字节表示该点的灰度值,它的值在 0255 之间,转换关系为:Gra

18、y(i,j)=0.11R(i,j)+0.59G(i,j)+0.3B(i,j)在实际中,可以取 3 个分量中的最大值作为灰度值。灰度处理首先读入图像的拷贝文件到内存中,找到 R,G,B 中的最大值,使颜色的分量值都相等且等于最大值,这样就可以使图像变成灰度图像。算法:1)取得图像文件的拷贝文件;2)取得图像的数据区指针,得到 R,G,B 三个分值;3)对 R,G,B 三个分量做比较,gray=max(R,G,B) ;4)将 gray 返回给 R,G,B 三个分量;5)显示图像。浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告102.32.3 对图像进行对图像进行处理处理(C

19、anny(Canny 算子算子) )坎尼(Canny)算子是 1986 年 John Canny 在 IEEE 上发表的“A Computational Approach to Edge Detection”这篇文章中提出的。文章中还给出了边缘检测的三条准则,即 Canny 准备(Cannys Criteria)。并在此基础上提出了一个实用算法。Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:(1)优良的信噪比,即对边缘的错误检测率要尽可能的低。也就是说将非边缘点判别为边缘点比将边缘点判别为非边缘点的概率要低。(2)优良的定位性能,即检测出的边缘位置尽可能在实际边缘的中心

20、。(3)对同一边缘仅有唯一的响应,即单个边缘产生多个响应的概率要低,并且虚假边缘应受到极大的抑制。Canny 算子对图像的处理过程可以概括为一下几个步骤:(1)过滤,边缘检测主要依赖于导数的计算,但很容易受噪声的影响。但是滤波器在降低噪声的强度的同时也降低了边缘强度的强度。(2)增强,增强算法将邻域中灰度有显著变化的点突出显示。一般通过计算梯度幅值完成。(3)检测,有一些梯度幅值很大并不一定是边缘点,所以必须进行进行的检测。(4)对边缘精确的定位。2.3.12.3.1 过滤过滤(Gauss(Gauss 滤波器滤波器) )高斯滤波器是一种线性线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的

21、减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。以下是它的函数:浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告11(x,y)分别是它离中心点的位置,而 则是一个标准方差,通过这个未知数可以控制 Gauss 函数的模板及平滑的程度。然后就是用 Gauss 函数对图像 f(x,y)进行平滑就可以得,这里的*符号表示的是卷积运算。通过这个运算以后就可以得到进行平滑以后的图像 F(x,y)了。2.3.22.3.2 计算梯度与梯度幅值计算梯度与梯度幅值这一部分是以 F(x,y)为基础的,要求出 F(

22、x,y)的梯度则必须要求出 F(x,y)的 x 偏导和 y 偏导。在数字图像里则是通过近似的计算也或者它们的偏导的。传统的Canny算子是采用2*2邻域来计算F(x,y)的梯度的。其中,x 和y 方向偏导数的2个阵列P x i, j 和P y i, j 分别为:这个公式可以化作一个模板,上面这个公式就可以化成这样的一个模板。X偏导与Y偏导分别为一下两个。 不过我设计的 Canny 算子在这里求梯度模板则是使用 Sobel 模板。浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告12接下来则是要求出每个像素的梯度幅值与梯度方向。可以使用上面求出的偏导了计算这两个变量。Mi,j

23、是梯度幅值。梯度方向是2.3.32.3.3 非极大值抑制非极大值抑制为了精确定位边缘, 必须细化梯度幅值图像M i, j 中的屋脊带, 只保留幅值局部变化最大的点, 这一过程就是非极大值抑制。通俗的讲就是,保证Canny算法的单个边缘响应,不能单看像素点的梯度幅值的大小来判断这个点是否是边缘点,必须通过让像素点进行比较,看它是不是一定范围内的极大值才能确定。Canny算法中使用的3*3的大小,包含8方向的邻域。其实可以说是4个方向,因为这个邻域是对称。这4个方向分别为0(0-22.5,157.5-180),45(22.5-67.5),90(67.5-112.5),135(112.5-157.5

24、)。括号内是每一个角度的范围。当梯度的角度值符合其中的某一个范围内,则将这个像素点的方向定为括号前面的角度。在每一个点上, 邻域的中心像素m i, j 与沿梯度方向的2 个梯度幅值的插值结果进行比较。如果邻域中心点的幅值m i, j 不比梯度方向上的2 个插值结果大, 则将m i, j 对应的边缘标志位赋值为0,这一过程把M i, j 宽屋脊带细化为一个像素宽, 并且保留了屋脊的梯度幅值。可以通过下图(1-2)更加清楚的了解非极大值抑制的过程。浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告131-2比如我们梯度的方向为10度,这时候我们应该把这个像素点的梯度方向归入0度

25、的范围内。然后就是拿中间的那个值与8和4这两个位置的像素进行比较,如果不是最好的则将其设置为0,不然则这个像素就是边缘的极值点。2.3.42.3.4 用双阈值算法检测和连接边缘用双阈值算法检测和连接边缘双阈值算法是对经过非极大值抑制和梯度直方图分类的子图像N i, j 分别使用高、低2个阈值S(h) 和S(l)分割得到2 个阈值边缘图像T h i, j 和T l i, j 。由于图像T h i, j 是由高阈值得到, 因此它应该不含有假边缘, 但T h i, j 可能在轮廓上有间断。因此双阈值算法要在T h i, j 中把边缘连接成轮廓, 当达到轮廓端点时, 该算法就在由低阈值得到的边缘图像T

26、 l i, j 的8邻域位置寻找可以连接到轮廓上的边缘, 这样, 利用递归跟踪的算法不断地在T l i, j 中搜集边缘, 直到将T h i, j 中所有的间隙都连接起来为止。2.3.42.3.4 CannyCanny 算法的缺点算法的缺点(1) Canny算法在求梯度的时候,由于模板的不同会有很大的不同。有可能造成对边缘的定位的确很精确,但是对噪声太过于敏感,从而导致出现假的边缘,并且丢失真的边缘。(2) 关于双阈值算法的高阈值与低阈值的取值问题也是一个很大的问题,不能根据图像本身的特点去估计这两个值,每一次都是认为的去设定这几个值。浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现

27、项目研究报告142.42.4 CannyCanny 算法与数学形态学的结合算法与数学形态学的结合灰度形态学处理的对象和结构元素是灰度函数,可充分考虑图像的灰度信息,更完整地描述图像的特征。膨胀和腐蚀是数学形态学的2种最基本运算,由这2种基本运算可以组成多种复合运算,产生各种形态学实用算法。膨胀:是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。可以用来填补物体中的空洞。其离散形式的形态变换如下: (fb) (s,t)=maxf(s-x,t-y)+b(x,y)(s-x,t-y) D ;(x,y) D +fb其中,f(x,y)和 b(x,y)表示定义在二维离散空间 D 和 D 上的

28、两个离散函fb数,f(x,y)表示输入图像,b(x,y)表示结构元素; 腐蚀:是膨胀的对偶运算,表示用结构元素 b 对图像 f 进行检测,寻找图像内部可以容纳该元素的区域,若原点在结构元素内部,则腐蚀具有收缩图像作用;若原点不在结构元素内部,则可用于填充图像内部的孔洞;同样,其离散形式的变换如下:(f b) (s,t)=minf(s+x,t+y)-b(x,y)(s+x,t+y) D ;(x,y) D fb开运算即先腐蚀后膨胀的过程,用来消除小物体、在细小点处分离物体、平滑较大物体的边界的同时并不明显改变其面积;闭运算即先膨胀后腐蚀的过程,用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并

29、不明显改变其面积;变换形式如下:开运算:fb=(f b)b + 闭运算:fb=(fb) b +在上述的 Canny 算法已经是边缘检测算法中效果比较好的一种了,但是有时候它的效果还是不那么让人满意。所以我们提出了将数学形态学这个新型学科也加到我们的项目中来。这个数学形态学主要做的是前期的工作,而 Canny算法本身应该说是不变的。浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告15本文针对的是灰度图像进行处理的。从上述可以知道形态学的基本运算就两种,一种是膨胀,用来填充一些小孔,有对图像外部滤波的作用。另一种是腐蚀,以消除图像中小的成分,有对图像内部滤波的作用。本文中数学

30、形态学主要用于前期的图像去噪。这是一部很重要的一步,因为前期的图像会对后期的检测产生很大的影响。滤波器可能在一定程度上到达去噪,但是在去噪的同时也是会消减图像本身的边缘的信息,可能导致最后的边缘不完整。如果用数学形态学去噪则不会对图像的信息进行消减,它能很好的保存图像的信息。因为数学形态学是基于信息的几何特征,预先定义了结构元素,所以能达到既能消除噪声又能很好的保留图像的信息。从一些资料1得知,数学形态学的开运算能很好的图像的白噪声,而且图像没有模糊,但是对黑噪声却没有太多的改变。对图像使用数学形态学的闭运算,仔细的观察会发现黑噪声也全部消失了,但是会有点图像有点轻微的模糊,不过应该影响不大。

31、在这个基础上,再对图像使用Canny算法就会有更加好的效果。 浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告16第第 3 3 章章 实验结果实验结果3.13.1 实验结果实验结果实验的结果是通过 5 个人的视网膜进行边缘识别。而且对不同的算法进行了比较。而且也很着重的比较了使用了数学形态学以后 Canny 算法与没有使用以前的差别。下面是检测的结果原图 只有 Canny 算子处理浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告17 数学形态学加 Canny我们可以看出只有 Canny 算法处理过的图片最外面一圈假的边缘点,而且如果仔细观察会发现有数

32、学形态学的图片的血管比只有 Canny 的要清晰不少。虽然从这张照片中看不去数学形态学的很大的优势,但是如果当照片原图没有那么好的情况下,则优势就很明显了。3.23.2 研究成果研究成果经过项目的研究和系统的开发,形成了以下研究成果:1)建立了可用于视网膜的数据库;2)设计了一套用于视网膜血管检测的系统原型程序;3)发表了研究论文 1 篇;浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告18第第 4 4 章章 结结 论论4.14.1 总结总结本课题的主要工作是研究视网膜血管分割算法,并且仔细的研究了 Canny算子和数学形态学。通过不同的算法对 5 个同学的左右眼睛的视网

33、膜进行了检测,并且对处理以后的进行仔细的对比,然后保存。本身 Canny 算法在边缘检测算法中已经算是比较好的一种算法,与数学形态学的结合让它变得更加的完美。本文主要的研究工作和成果体现在如下几个方面:1).对 Sobel,Reberts,Laplacian,LOG,Canny 几种常见算法进行了比较,然后通过对不同质量照片的出来,来发现它们的优点和缺点。也发现了这几种算发中 LOG 与 Canny 的检测能力比其他的要好一点。2).让 Canny 算法与数学形态学进行了结合,数学形态学很好的弥补了Canny 算法的部分的确定。在 Canny 算法的基础上使图像变得更加的清晰。并对数学形态学也

34、有了一定的掌握的,数学形态学是一门新兴的、以形态为基础对图像进行分析的学科,它用具有一定形态的结构元素去度量和提取图像中的对应形状以实现对图像的分析和识别、边缘检测等图像预处理问题中有着明显的优势。数学形态学的基础对于膨胀与腐蚀的掌握。也发现了正确的使用数学形态学可以能很好的处理图像边缘的问题。4.24.2 工作展望工作展望虽然本课题的研究取得了一定的进展,但视网膜技术及系统的最终完善还有待进一步的研究。尤其是在一些核心算法的研究上,如何针对视网膜图像的特点,提出更高效的边缘提取算法,是后续研究工作的重点。另外,虽然我们从实验方面验证了视网膜图像边缘识别系统的性能和可靠性,但还需要在理论上对视

35、网膜的检测唯一性与不变性方面作进一步的探讨。随着现代化技术的不断出现,传统身份识别方法已经不能满足现代社会对浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告19个人身份识别的要求。生物特征身份识别具有传统方法所无法比拟的高准确性、高安全性、高可靠性等优点,能够克服传统方法的弊端。作为新兴的生物特征身份识别技术,视网膜识别凭借其高度的准确性,已经得到学术界和企业界越来越广泛的关注。浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告20参考文献参考文献1张惠蓉.眼微循环及其相关疾病M.北京:北京医科大学中国协和医科大学联合出版社,1993.2吴振中.现代临

36、床眼科学M.长沙:湖南科学技术出版社,1996.3汤敏,王惠男.彩色视网膜血管图像的自动分割算法J.仪器仪表学报,2007,28(7):1281-1285.4姚畅,陈后金,李居朋.基于过渡区提取的视网膜血管分割方法J.电子学报,2008,36 (5):974-978.5潘立丰,王利生.一种视网膜血管自适应提取方法J.中国图象图形学报,2006,11 (3):310-316.6Gonzalez C Rafael, Woods E R ichard. 数字图像处理(第二版)M , 北京: 电子工业出版社, 2003: 463 4747Canny J. A computational app roa

37、ch to edge detection J . IEEE Transactions on Pattern A nalysis and M ach ine Intelligence,1986, 88Dem igny D, Kam le T. A discrete exp ression of Cannys criteria for step edge detecto r perfo rmances evaluation J . IEEE Transactions on Pattern A nalysis and M ach ine Intelligence, 1997, 19 (6) : 11

38、99 1211.浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告21附录附录 1 1 视网膜血管分割系统视网膜血管分割系统处理图像的程序(Canny,Sobel 等):/专门用来出来图像分割的一个类class ImgSegment : public ImgCenterDib public:/输出图像每像素的位数int m_nBitCountOut;/输出图像位图数据指针unsigned char * m_lpImgDataOut;/输出图像的颜色表LPRGBQUAD m_lpColorTableOut;private:int m_imgWidthOut;int m_img

39、HeightOut;int m_nColorTableLengthOut;public:ImgSegment();ImgSegment(CSize size,int nBitCount,LPRGBQUAD lpColorTable,unsigned char *pImgData);浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告22 ImgSegment();CSize GetDimensions();void Reberts();void Canny();void Laplacian();void LOG();int ComputeGrad(int X_Grad,int

40、 Y_Grad );/求梯度的函数 /阈值估计void EstimateThreshold(unsigned char * imgIn, int nWidth, int nHeight, int *pnThdHigh,int *pnThdLow, unsigned char * imgOut, double dRatioHigh, double dRationLow);/最后的边缘连接函数void Hysteresis(unsigned char * imgIn, int nWidth, int nHeight, double dRatioLow,double dRatioHigh, unsi

41、gned char *imgOut);/也是最后边缘连接的一个函数,用来自我调用void TraceEdge (int y, int x, int nLowThd, unsigned char *pUnchEdge, unsigned char *pnMag, int nWidth);/非极大值控制void NoMaxSuppress(unsigned char * imgIn, unsigned char * img_GradX,unsigned char * img_GradY,int nWidth,int nHeigth,unsigned char * imgOut );private:

42、/模板卷积函数void TemplateEdge(unsigned char * imgIn,int width,int height,int nBitCount,int *mask,int maskW,int maskH,unsigned char *&imgOut,BOOL flag);void ImgSegment:Canny()/定义高斯模板int G_mask25;G_mask0 = 2;G_mask1 = 4;G_mask2 = 5;G_mask3 = 4;浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告23G_mask4 = 2;G_mask5 = 4;G_

43、mask6 = 9;G_mask7 = 12;G_mask8 = 9;G_mask9 = 4;G_mask10 =5;G_mask11 = 12;G_mask12 = 15;G_mask13 = 12;G_mask14 = 5;G_mask15 = 4;G_mask16 = 9;G_mask17 = 12;G_mask18 = 9;G_mask19 = 4;G_mask20 = 2;G_mask21 = 4;G_mask22 = 5;G_mask23 = 4;G_mask24 = 2;int Grad_maskX9;int Grad_maskY9;Grad_maskX0 = 0;Grad_ma

44、skX1 = 0;Grad_maskX2 = 0;Grad_maskX3 = -1;Grad_maskX4 = 0;Grad_maskX5 = 1;Grad_maskX6 = 0;Grad_maskX7 = 0;Grad_maskX8 = 0;Grad_maskY0 = 0;Grad_maskY1 = -1;Grad_maskY2 = 0;Grad_maskY3 = 0;Grad_maskY4 = 0;Grad_maskY5 = 0;Grad_maskY6 = 0;Grad_maskY7 = 1;浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告24Grad_maskY8

45、= 0;if(this-m_lpImgDataOut != NULL)delete m_lpImgDataOut;m_lpImgDataOut = NULL;if(this-m_lpColorTableOut != NULL)delete m_lpColorTableOut;m_lpColorTableOut = NULL;this-m_nBitCountOut = m_nBitcount;this-m_nColorTableLengthOut = this-ComputeColorTableLength(this-m_nBitCountOut);if(m_nColorTableLengthO

46、ut != 0)this-m_lpColorTableOut = new RGBQUADthis-m_nColorTableLengthOut;memcpy(this-m_lpColorTableOut,m_lpColorTable,sizeof(RGBQUAD) * this-m_nColorTableLengthOut);this-m_imgHeightOut = this-m_imgHeight;this-m_imgWidthOut = this-m_imgWidth;int LineByte = (this-m_imgWidth * this-m_nBitcount/8 + 3 ) /

47、 4 * 4;/临时变量 unsigned char * T_ImgDataOut_G;unsigned char * T_ImgDataOut_X;unsigned char * T_ImgDataOut_Y;unsigned char * T_ImgDataOut_S;T_ImgDataOut_G = new unsigned charLineByte * this-m_imgWidthOut;T_ImgDataOut_X = new unsigned charLineByte * this-m_imgWidthOut;T_ImgDataOut_Y = new unsigned charL

48、ineByte * this-m_imgWidthOut;T_ImgDataOut_S = new unsigned charLineByte * this-m_imgWidthOut;浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告25/this-m_lpImgDataOut = new unsigned charLineByte * this-m_imgWidthOut;/Gauss 平滑this-TemplateEdge(m_pImgData,this-m_imgWidth,this-m_imgHeight,this-m_nBitcount,G_mask,5,5,T

49、_ImgDataOut_G,false);/求 X 的梯度this-TemplateEdge(T_ImgDataOut_G,this-m_imgWidth,this-m_imgHeight,this-m_nBitcount,Grad_maskX,3,3,T_ImgDataOut_X,true);/求 Y 的梯度this-TemplateEdge(T_ImgDataOut_G,this-m_imgWidth,this-m_imgHeight,this-m_nBitcount,Grad_maskY,3,3,T_ImgDataOut_Y,true);/梯度幅值for(int i =0 ; i m_i

50、mgWidthOut; i+)this-m_lpImgDataOuti = this-ComputeGrad(T_ImgDataOut_Xi,T_ImgDataOut_Yi);/非极大值限制this-NoMaxSuppress(this-m_lpImgDataOut,T_ImgDataOut_X,T_ImgDataOut_Y,this-m_imgWidth,this-m_imgHeight,T_ImgDataOut_S);/阈值化this-Hysteresis(this-m_lpImgDataOut,this-m_imgWidth,this-m_imgHeight,0.4,0.79,T_Img

51、DataOut_S);memcpy(this-m_lpImgDataOut,T_ImgDataOut_S ,LineByte * this-m_imgWidthOut);delete T_ImgDataOut_G;delete T_ImgDataOut_X;delete T_ImgDataOut_Y;浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告26delete T_ImgDataOut_S;浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告27附录附录 2 2 数学形态学数学形态学程序源代码:class Morphology : public Im

52、gCenterDib public:/输出图像每像素的位数int m_nBitCountOut;/输出图像位图数据指针unsigned char * m_lpImgDataOut;/输出图像的颜色表LPRGBQUAD m_lpColorTableOut;private:int m_imgWidthOut;int m_imgHeightOut;int m_nColorTableLengthOut;int *m_maskBuf;int m_maskW;int m_maskH;public:Morphology();Morphology(CSize size, int nBitCount, LPRG

53、BQUAD lpColorTable, unsigned char *pImgData);CSize GetDimensions();/灰值腐蚀浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告28void GrayErosion();/灰值膨胀void GrayDilation();/灰值开void GrayOpen();/灰值闭void GrayClose();/灰值形态学梯度void GrayGradient(); Morphology();/结构元素(模板)输入函数,在调用其它形态学处理函数前必须先调用此函数void InputMask(int *mask,int

54、maskW, int maskH);private:/灰值腐蚀基本运算,灰值开、闭、形态学梯度等操作都要调用这个函数void BasicErosionForGray(unsigned char *imgBufIn, unsigned char *imgBufOut,int imgWidth,int imgHeight,int *maskBuf, int maskW, int maskH);/灰值膨胀基本运算,灰值开、闭、形态学梯度操作等都要调用这个函数void BasicDilationForGray(unsigned char *imgBufIn, unsigned char *imgBuf

55、Out,int imgWidth,int imgHeight,int *maskBuf, int maskW, int maskH);浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告29致致 谢谢衷心的感谢张永平教授给我们耐心的指导和帮助,张教授严谨的治学态度、丰富的研究经验、开阔的思维方式都给我们以很大的启迪和教益。这不仅丰富了我们的知识而且更开阔了我们的视野。从项目的选题、研究过程的逐步推进、问题的解决到论文的撰写、修改等全过程都是在张教授的悉心指导下完成的。在此期间,老师给予了我们很多关心、宽容和支持,同时,感谢苏老师和所有帮助过我们的教师,正是在老师们的帮助下,才使得课题顺利的完成。在此向他们表示由衷的谢意。浙江省“新苗人才计划”项目 视网膜血管分割系统设计与实现 项目研究报告30数据库图像资料

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!