zhang 快速并行细化方法_Zhang快速并行细化算法概要1.docx

本文介绍了Zhang快速并行细化算法在获取二值图像骨架中的应用,详细阐述了算法的两个细化步骤,并提供了使用VB6.0和MatrixVB库编写的程序示例,展示了如何计算细化条件的值。
摘要由CSDN通过智能技术生成

Zhang快速并行细化算法概要1

Zhang快速并行细化算法最近的研究涉及获取二值图像骨架(图象的中轴线),网上找到许多方法,Zhang快速并行细化算法是出现次数最多的算法,看了几篇博客,又下载了提出这个算法的文献,感觉这个方法很容易理解,编程也容易,其实最后也没花多少时间就成功了,VB6.0编写的程序,用到了函数库MatrixVB,这里分享一下心得。算法简介图1 8邻域系统图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的非零邻点的个数,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;以上两步操作构成一次迭代,直至没有点再满足标记条件,这时剩下的点组成区域即为细化后骨架。程序及细化结果用VB6.0编写的程序,用到了函数库MatrixVB(需要的话可以到网上去搜,很老的东西了)。2.1 模块部分这部分包括自定义数据类型(相当于C语言里的结构体),定义了一些函数。Option ExplicitType necessary_conditions '4个条件 N_P1 As Integer S_P1 As Integer Mult_P2P4P6 As Integer Mult_P4P6P8 As Integer Mult_P2P4P8 As Integer Mult_P2P6P8 As IntegerEnd TypeType position x As Integer y As IntegerEnd Type'**************************************************************'计算4个条件的值'输入:P1点的坐标,待处理的二值图binary_image'输出:4个条件的值'**************************************************************Function obtain_necessary_conditions_value(x%, y%, binary_image) As necessary_conditionsDim i%, cnt1%, cnt2%, neighbor8%(9)'--------------------条件1---------------------If binary_image(x - 1, y) = 1 Then neighbor8(2) = 1If binary_image(x - 1, y + 1) = 1 Then neighbor8(3) = 1If binary_image(x, y + 1) = 1 Then neighbor8(4) = 1If binary_image(x + 1, y + 1) = 1 Then neighbor8(5) = 1If binary_image(x + 1, y) = 1 Then neighbor8(6) = 1If binary_image(x + 1, y - 1) = 1 Then neighbor8(7) = 1If binary_image(x, y - 1) = 1 Then neighbor8(8) = 1If binary_image(x - 1, y - 1) = 1 Then neighbor8(9) = 1cnt1 = 0cnt2 = 0'--------------------条件2---------------------For i = 2 To 9 If neighbor8(i) = 1 Then cnt1 = cnt1 + 1Next i'--------------------条件3---------------------For i = 2 To 9 - 1 If neighbor8(i) - neighbor8(i + 1) = -1 Then cnt2 = cnt2 + 1Next i If neighbor8(9) - neighbor8(2) = -1 Then cnt2 = cnt2 + 1'--------------------条件4---------------------obtain_necessary_conditions_value.N_P1 = cnt1obtain_necessary_conditions_value.S_P1 =

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值