欢迎来到天天文库
浏览记录
ID:59251730
大小:31.87 KB
页数:6页
时间:2020-09-08
《Zhang快速并行细化算法.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Zhang快速并行细化算法最近的研究涉及获取二值图像骨架(图象的中轴线),网上找到许多方法,Zhang快速并行细化算法是出现次数最多的算法,看了几篇博客,又下载了提出这个算法的文献,感觉这个方法很容易理解,编程也容易,其实最后也没花多少时间就成功了,VB6.0编写的程序,用到了函数库MatrixVB,这里分享一下心得。1.算法简介图18邻域系统图1表示以P1为中心的8邻域系统,P2~P9代表与P1相邻的8个像素点,1.1细化步骤1删除同时满足下列条件的边界点:①2≤N(P1)≤6;②S(P1)=1;③P2×P4×P6=0;④P4×P6×P8=0;其中:N(P1)是P1
2、的非零邻点的个数,S(P1)是以P2,P3,…,P9,P2为序时这些点的值从0到1变化的次数。1.2细化步骤2删除同时满足下列条件的边界点:①2≤N(P1)≤6;②S(P1)=1;③P2×P4×P8=0;④P2×P6×P8=0;以上两步操作构成一次迭代,直至没有点再满足标记条件,这时剩下的点组成区域即为细化后骨架。1.程序及细化结果用VB6.0编写的程序,用到了函数库MatrixVB(需要的话可以到网上去搜,很老的东西了)。2.1模块部分这部分包括自定义数据类型(相当于C语言里的结构体),定义了一些函数。OptionExplicitTypenecessary_cond
3、itions'4个条件N_P1AsIntegerS_P1AsIntegerMult_P2P4P6AsIntegerMult_P4P6P8AsIntegerMult_P2P4P8AsIntegerMult_P2P6P8AsIntegerEndTypeTypepositionxAsIntegeryAsIntegerEndType'**************************************************************'计算4个条件的值'输入:P1点的坐标,待处理的二值图binary_image'输出:4个条件的值'***********
4、***************************************************Functionobtain_necessary_conditions_value(x%,y%,binary_image)Asnecessary_conditionsDimi%,cnt1%,cnt2%,neighbor8%(9)'--------------------条件1---------------------Ifbinary_image(x-1,y)=1Thenneighbor8(2)=1Ifbinary_image(x-1,y+1)=1Thenneighbo
5、r8(3)=1Ifbinary_image(x,y+1)=1Thenneighbor8(4)=1Ifbinary_image(x+1,y+1)=1Thenneighbor8(5)=1Ifbinary_image(x+1,y)=1Thenneighbor8(6)=1Ifbinary_image(x+1,y-1)=1Thenneighbor8(7)=1Ifbinary_image(x,y-1)=1Thenneighbor8(8)=1Ifbinary_image(x-1,y-1)=1Thenneighbor8(9)=1cnt1=0cnt2=0'---------------
6、-----条件2---------------------Fori=2To9Ifneighbor8(i)=1Thencnt1=cnt1+1Nexti'--------------------条件3---------------------Fori=2To9-1Ifneighbor8(i)-neighbor8(i+1)=-1Thencnt2=cnt2+1NextiIfneighbor8(9)-neighbor8(2)=-1Thencnt2=cnt2+1'--------------------条件4---------------------obtain_necessar
7、y_conditions_value.N_P1=cnt1obtain_necessary_conditions_value.S_P1=cnt2obtain_necessary_conditions_value.Mult_P2P4P6=neighbor8(2)*neighbor8(4)*neighbor8(6)obtain_necessary_conditions_value.Mult_P2P4P8=neighbor8(2)*neighbor8(4)*neighbor8(8)obtain_necessary_conditions_value.Mult_
此文档下载收益归作者所有