距离变换图和骨架图生成算法
计算机地图制图复习题
1.计算机地图制图的优越性:(1)数字地图易于贮存,并保证了贮存中的不变形性,从而提高了地图的使用精度;(2)数字地图易于校正、编辑和更新,增加地图的适应性、实用性和用户的广泛性;(3)用绘图机绘图不仅减轻了制图人员的劳动强度,而且减少了制图人员的主观随意性而产生的偏差,为地图制图进一步标准化、规范化铺平了道路;(4)提高了成图速度,缩短了成图周期,改进了制图和制印工艺。
(5)增加了地图品种,拓宽了服务领域。
(6)数字地图的容量大,它只受计算机存贮器的限制,可以包含比一般模拟地图多得多的地理信息2. 计算机地图制图:计算机地图制图是以传统的地图制图原理为基础,以计算机及其外围设备为工具,采用数据库技术和图形数字处理方法,实现地图信息的获取、变换、传输、识别、存贮、处理、显示和绘图的应用科学。
3. 计算机地图制图涉及的主要理论:地图学:坐标系、投影、综合等计算机图形学:坐标变换、图形生成、图形显示、图形裁剪等数字图像处理:图像的采样、重采样、裁剪等数据库技术:空间数据的存储、管理等4. 计算机地图制图的过程可分为哪几个阶段? 每个阶段的主要任务是什么?计算机制图的方法包括以下三个阶段:即数据获取、数据处理和图形输出。
数据获取阶段的任务:全站仪和GPS数据采集;扫描数字化;遥感图像处理;数字摄影测量;图板数字化图形处理;统计资料;地图资料;数据处理阶段:数据预处理;投影变换;制图综合;图形编辑;数字地图接边;图形输出阶段:地形图;专题地图;分析评价图;统计图表辑;其他地图;5. 用来表示地图图形的数据形式有矢量形式的数据和栅格形式的数据,简称矢量数据和栅格数据6. 计算机制图系统的组成1)输入设备2)中心系统硬件3)输出设备7. 举例说明计算机制图系统中常用的输入、输出设备有那些?输入设备:键盘和鼠标;操纵杆和跟踪;数字化仪;扫描仪;三维激光扫描-CYRAX;三维激光扫描ILRIS-3D输出设备:显示器种类;点阵式和矢量式输出设备8. 主要应用软件是ARC/INFO、Geostar、GeoMedia、GenaMap、 MapInfo、AutoDesk Map、ArcView、MapObjects等9.在计算机科学中,数据压缩是指用资格筛选法,信息量法或其他统计方法,把大量的原始数据或由存贮器取出来的数据转换为有用的、有条理的,精炼而简单的信息的过程,又称数据简化或数据综合。
基于距离场的骨架细化算法
基于距离场骨架的细化算法摘要:骨架是现在物体识别的一种有效手段,保存和处理对象的拓扑信息,是图像分析的重要研究之一。
传统的距离场和基于图像求取的骨架难以保证连通,而细化所得的骨架受噪声影响较大,不能保证结果的准确性,但是细化在骨架识别中起到举重若轻的作用。
本文提出一种优良的骨架细化和骨架提取算法,将经典的距离变换和细化相结合,使骨架在原有识别的基础上更加的精确。
关键词:骨架提取;细化算法;距离场。
1引言骨架(Skeleton)是一种中轴变换用来描述物体的拓扑结构的主要手段之一,首先由Blum提出,它是一种线条状的几何体,线条位于物体的几何中心,有着和原物体相同的拓扑结构,在保持原物体的形状信息的同时,尽量减少了原物体的冗余信息。
骨架有着广泛的应用比如形状描述、文字识别、工程图处理、图像重建、压缩编码和红外图像识别等。
骨架的提取算法主要分为两类:一类是基于细化的算法,另一类是基于距离场的方法。
细化算法是采用迭代的手段不断的剥除目标的边界点,并且保留边界上满足骨架特性的点,直到没有多余的边界可以剥除,剩下的就是骨架。
这个方法在连续域是正确的,但由于图像是离散点,在向内推进过程中无法按照图像的收缩方向进行。
提取的骨架是连续的,但骨架的定位不确定,这两种细化算法在距离场中都对距离场中的脊线有所偏离。
距离场的脊就是骨架线,由于脊的判断方法不准确,有时候很难鉴定一个点是否为距离场的脊,所有得到的点往往是一些离散点,一般的做法是找出距离场中的最大值按照一定的拓扑结构连接起来就构成了原图的骨架如图(1),此方法的结果是准确的但是不连续。
(1)2 基于细化的骨架提取图像的细化是对一个二值图像进行收缩的过程,按照原来的形状让其等比列变小,在连线域上即使收缩到很小的程度还是保持着原来的的形状。
根据细化过程的特点,便有人提出各种算法进行提取骨架,比如“烧草”算法,它的核心思想是,将目标内的所有点看做一个草原,同时从边界点火,再向目标内部蔓延,在蔓延的过程中,燃烧点重合的地方即为骨架点。
三维骨架细化算法
三维骨架细化算法
三维骨架细化算法是一种用于图像处理和计算机视觉中的算法,其目的是从三维体数据中提取出它的骨架结构。
该算法主要包括以下几步:灰度化、二值化、分割、细化、分支点剪枝等。
在细化过程中,通过对像素进行二值化操作,将其转化为0和1两个值,再通过特定的算法将其细化为一个像素宽度的线条,从而提取出其骨架结构。
在分支点剪枝中,通过对骨架中的分支点进行剪枝,使其更符合实际的结构形态。
三维骨架细化算法在医学影像处理、机器人控制和模型建立等领域有着广泛的应用。
- 1 -。
骨架线算法-概述说明以及解释
骨架线算法-概述说明以及解释1.引言1.1 概述概述:骨架线算法(Skeletonization algorithm)是一种用于提取物体或图像形状中主要特征的计算方法。
它通过将图像或物体的边界区域简化为其主要骨架,从而实现对形状的抽象和表示。
骨架线算法在图像处理、模式识别、计算机视觉等领域具有广泛的应用。
骨架线算法的主要思想是通过去除图像中的冗余信息,保留物体或形状的主要结构和特征。
这种算法可以有效地减少数据量,简化图像表示,同时保持重要的拓扑关系和形状特征。
通过提取物体的骨架线,我们可以得到物体的主轴或中心线,从而更好地理解和分析对象的形态、结构和特征。
骨架线算法的原理通常基于图像的连通性和几何形状的局部特征。
常见的骨架线算法包括细化算法、距离变换算法、分水岭算法等。
这些算法可以根据不同的需求和应用场景选择合适的方法进行骨架线提取。
骨架线算法在许多领域都有广泛的应用。
在医学影像中,骨架线算法可以用于血管或神经的提取和分析,有助于辅助诊断和手术规划。
在图像识别和模式分类中,骨架线算法可以用于特征提取和形状匹配,提高图像的分类准确率。
此外,骨架线算法还在工程设计、地质勘探、数字艺术等方面具有重要的应用价值。
本文将介绍骨架线算法的定义、原理和应用。
通过对骨架线算法的深入讨论,我们可以更好地理解和应用这一算法,为相关领域的研究和应用提供指导和参考。
文章结构部分的内容可以按照如下方式撰写:1.2 文章结构本文按照以下结构进行组织和阐述:1. 引言在引言部分,我们将对骨架线算法进行一个概述,介绍其背景和基本概念。
我们将讨论骨架线算法在图像处理领域中的重要性和应用前景。
2. 正文正文部分主要分为三个部分进行论述。
2.1 骨架线算法的定义首先,我们将详细介绍骨架线算法的定义,并解释其核心思想和基本原理。
我们将探讨骨架线算法的起源以及它与其他相关算法的关系。
2.2 骨架线算法的原理在本部分,我们将深入讨论骨架线算法的原理。
第七讲 二值图像处理与形状分析重点
二值图像的连接性和距离
像素的连接
对于二值图像中具有相同值的两个像素A和B,所有和A、B 具有相同值的像素系列p0(=A),p1,p2,…,pn-1,pn(=B)存在,并 且pi-1和pi互为4-/8-邻接,那么像素A和B叫做4-/8-连接,以 上的像素序列叫4-/8-路径。如图8.1.3。
二值图像的连接性和距离
8.2 二值图像连接成分的变形 操作
二值图像连接成分的变形操作
1、连接成分的标记
为区分二值图像中的连接成分,求得连接成分个数,对属于 同一个1像素连接成分的所有像素分配相同的编号,对不同 的连接成分分配不同的编号的操作,叫做连接成分的标记。
对图像进行TV光栅扫描,发现没有分配标号的1像素,对这个像素分 配还没有使用的标号,对位于这个像素8-邻域内的1像素也赋予同一 标号,然后对位于其8-邻域内的1像素也赋予同一标号。
1 0 B 1 1
二值图像连接成分的变形操作
2.4、开运算
先腐蚀后膨胀的运算称为开运算。它一般的作用是消除细小物体。 在纤点处分离物体和平滑物体边界时又不明显改变其面积
A B (A
B) B
2.5、闭运算
先膨胀后腐蚀的运算称为闭运算。它一般的作用是填充物体内细小 空洞,连接相邻物体,在不明显改变其面积的情况下平滑物体
膨胀运算的一个例子
0 0 A 0 0 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0
1 0 B 1 1
二值图像连接成分的变形操作
2.3、收缩/腐蚀
腐蚀的运算符为⊙,A用B来腐蚀记作A⊙B
骨架线算法
骨架线算法全文共四篇示例,供读者参考第一篇示例:骨架线算法是一种用于提取对象骨架的计算机视觉算法。
在图像处理领域中,骨架线通常指物体的中轴线或中心线,是表示物体形状和结构的重要特征。
骨架线算法可以帮助识别物体的形状、轮廓和结构信息,对于数字化建模、医学图像处理、工程设计等领域有着广泛的应用。
骨架线算法的基本思想是从对象的边缘逐渐收缩,直到最终形成对象的中心线。
这个过程通常包括三个步骤:边缘提取、骨架化和细化。
通过图像处理技术提取出对象的边缘信息;然后,利用数学形态学等方法对边缘进行骨架化处理,得到初步的骨架;通过迭代细化算法对初步骨架进行进一步处理,获得更加精细的骨架线。
骨架线算法的主要优点包括:可以提取出对象的主要轮廓和结构信息,对于形状分析和识别具有较高的准确性和稳定性;可以减少图像数据的复杂度,节省存储和传输空间,便于后续处理和分析;骨架线还可以用于对象的比较和匹配,帮助识别不同对象之间的相似性和差异性。
在实际应用中,骨架线算法广泛应用于医学影像分析、工业检测、自动驾驶等领域。
在医学影像领域,骨架线算法可以帮助医生快速准确地识别病变部位、量化分析组织结构,辅助诊断和治疗。
在工业领域,骨架线算法可以用于产品设计、质量控制、零部件匹配等方面,提高生产效率和品质。
在自动驾驶领域,骨架线算法可以帮助车辆感知周围环境、规划路径,实现智能驾驶。
值得注意的是,骨架线算法虽然在图像处理领域有着广泛的应用,但也存在一些挑战和限制。
算法的鲁棒性和稳定性仍然需要进一步改进,对图像噪声、变形、遮挡等情况的处理效果有待提高;骨架线算法对于不规则形状和复杂结构的物体提取效果可能不理想,需要针对性优化和改进算法。
骨架线算法是一种有效的图像处理技术,可以帮助提取对象的骨架信息,对于形状分析、识别和匹配等领域有着广泛的应用前景。
随着人工智能、深度学习等技术的不断发展和应用,相信骨架线算法还会有更多的创新和突破,为图像处理领域带来更多的发展机会和挑战。
中轴变换与骨架提取
计算MER的一种方法是,将目标的边界以每次3°左右的增量在60°范围内旋转。 每旋转一次记录一次其坐标系方向上的外接矩形边界点的最大和最小x、y值。旋转 到某一个角度后,外接矩形的面积达到最小。取面积最小的外接矩形的参数为主轴 意义下的长度和宽度,如图6-4(b)所示。此外,主轴可以通过矩(Moments)的计算 得到,也可以用求目标的最佳拟合直线的方法求出。
A
1 2
(
xdy
Hale Waihona Puke ydx)(6-8)
其中,积分沿着该闭合曲线进行。将其离散化,式(6-8)变为
A
1 2
Nb
[xi ( yi1
i 1
yi )
yi ( xi1
xi )]
1 2
Nb
[ xi yi1
i 1
xi1 yi ]
(6-6)
式中,Nb为边界点的数目。
6.1.4
当目标的边界已知时,用其外接矩形的尺寸来刻画它的基本形状是最简单的方法, 如图6-4(a)所示。求目标在坐标系方向上的外接矩形, 只需计算目标边界点的最大和 最小坐标值,就可得到目标的水平和垂直跨度。但是,对任意朝向的目标, 水平和垂 直并非是我们感兴趣的方向。这时,就有必要确定目标的主轴, 然后计算反映目标形 状特征的主轴方向上的长度和与之垂直方向上的宽度,这样的外接矩形是目标的最小 外接矩形(Minimum Enclosing Rectangle, MER)。
设屏幕左上角为坐标原点,起始点坐标为(x0, y0),第k段链码终端的y坐标为
k
yk y0 yi
(6-5)
i 1
式中
1
εi=1, 2, 3
yi 0
εi=0,4 εi=5, 6, 7
图像细化算法 2
图像细化算法一、细化算法简介图像细化(Image Thinning),一般指二值图像的骨架化(Image keletonization)的一种操作运算。
所谓的细化就是经过一层层的剥离,从原来的图中去掉一些点,但仍要保持原来的形状,直到得到图像的骨架。
骨架,可以理解为图象的中轴。
好的细化算法一定要满足:∙收敛性;∙保证细化后细线的连通性∙保持原图的基本形状∙减少笔画相交处的畸变∙细化结果是原图像的中心线∙细化的快速性和迭代次数少依据是否使用迭代运算可以分为两类:(1)非迭代算法一次即产生骨架,如基于距离变换的方法。
游程长度编码细化等。
(2)迭代算法即重复删除图像边缘满足一定条件的像素,最终得到单像素宽带骨架。
迭代方法依据其检查像素的方法又可以再分成①串行算法是否删除像素在每次迭代的执行中是固定顺序的,它不仅取决于前次迭代的结果,也取决于本次迭代中已处理过像素点分布情况.②并行算法像素点删除与否与像素值图像中的顺序无关,仅取决于前次迭代的结果二、本文所用算法我所采用的是Zhang并行快速细化算法,它的原理也很简单:我们对一副二值图像进行骨架提取,就是删除不需要的轮廓点,只保留其骨架点。
假设一个像素点,我们定义该点为p1,则它的八邻域点p2->p9位置如下图所示,该算法考虑p1点邻域的实际情况,以便决定是否删除p1点。
假设我们处理的为二值图像,背景为黑色,值为0,要细化的前景物体像素值为1。
算法的描述如下。
首先复制源图像到目地图像,然后建立一个临时图像,接着执行下面操作:1. 把目地图像复制给临时图像,对临时图像进行一次扫描,对于不为0的点,如果满足以下四个条件,则在目地图像中删除该点(就是设置该像素为0),这里p2,…,p9是对应位置的像素灰度值(其为1或者0)。
a. 2<= p2+p3+p4+p5+p6+p7+p8+p9<=6大于等于2会保证p1点不是端点或孤立点,因为删除端点和孤立点是不合理的,小于等于6保证p1点是一个边界点,而不是一个内部点。
骨架提取算法 矢量化
骨架提取算法矢量化全文共四篇示例,供读者参考第一篇示例:骨架提取算法是计算机图像处理领域中常用的一种技术,它可以根据图像中的对象的边缘信息,提取出该对象的中心线或者骨架结构,从而对图像进行更精确的分析和处理。
而矢量化是将图像转换为矢量图形的过程,可以大大提高图像的清晰度和编辑性。
本文将结合这两个技术,介绍骨架提取算法的原理和应用,并探讨如何使用矢量化技术优化骨架提取结果。
一、骨架提取算法的原理1. 边缘检测:在进行骨架提取前,首先需要对图像进行边缘检测,将对象的边缘提取出来。
常用的边缘检测算法包括Sobel算子、Canny算子等,它们可以通过计算梯度来找到图像中的边缘。
2. 膨胀与腐蚀:在得到图像的边缘后,需要对边缘进行膨胀和腐蚀操作,以便后续的骨架提取。
膨胀操作可以将边缘的宽度增加,使得骨架提取更容易进行,而腐蚀操作则可以将边缘变细,使得骨架更加准确。
3. 骨架提取:通过对边缘进行细化、分叉等操作,可以得到对象的骨架结构。
常用的骨架提取算法包括细化算法、距离变换算法等。
这些算法可以根据边缘像素之间的距离和关系,得到对象的中心线或者骨架结构。
二、骨架提取算法的应用1. 物体识别:在计算机视觉中,骨架提取算法可以用于物体识别。
通过提取物体的骨架结构,可以更准确地识别和分类不同的物体。
2. 医学影像分析:在医学影像学中,骨架提取算法可以用于提取血管、神经等重要结构的中心线,从而辅助医生进行病变分析和手术规划。
3. 动画制作:在动画制作中,骨架提取算法可以用于人物、动物等形象的建模和动作设计,可以使得动画更加逼真和生动。
三、矢量化技术在骨架提取中的应用1. 精细化处理:将骨架提取得到的中心线或者骨架结构转换为矢量图形,可以使得图像更加清晰和精细。
矢量图形可以无损地放大或缩小,而不会失真。
2. 编辑性增强:矢量图形可以方便地进行编辑和修改,可以调整线条的粗细、颜色等属性,从而对图像进行更加灵活的处理。
3. 矢量化优化:通过矢量化技术,可以优化骨架提取结果,消除一些不必要的细节和噪音,使得骨架结构更加清晰和准确。
骨骼蒙皮2d算法
骨骼蒙皮2D算法简介骨骼蒙皮2D算法是一种用于实现2D角色动画的技术。
它通过将角色的骨骼与皮肤进行绑定,实现角色的自然变形和动作表现。
本文将介绍骨骼蒙皮2D算法的基本原理、实现方式以及应用场景。
基本原理骨骼蒙皮2D算法基于骨骼动画的原理,将角色划分为多个骨骼节点,并在每个节点上绑定一个或多个皮肤。
每个骨骼节点都有一个变换矩阵,用于控制皮肤的位置、旋转和缩放。
通过对骨骼节点的变换矩阵进行操作,可以实现角色的自由变形和动作表现。
骨骼蒙皮2D算法的核心是通过权重和插值来计算每个像素点受到哪些骨骼节点的影响。
对于每个像素点,通过计算其与骨骼节点的距离和权重,可以得到该像素点受到骨骼节点影响的程度。
通过对所有受影响的骨骼节点进行插值,可以得到最终的像素点位置。
实现方式骨骼蒙皮2D算法的实现可以分为以下几个步骤:1.创建骨骼:将角色划分为多个骨骼节点,并构建它们之间的层次关系。
每个骨骼节点都有一个变换矩阵,用于控制皮肤的变形。
2.绑定皮肤:将每个骨骼节点与相应的皮肤进行绑定。
皮肤可以是角色的各个身体部位,如头、手、脚等。
每个皮肤都有一个初始的顶点位置。
3.计算权重:对于每个像素点,计算其与各个骨骼节点的距离,并根据距离计算权重。
距离越近,权重越大。
4.插值计算:根据权重和骨骼节点的变换矩阵,对每个像素点的位置进行插值计算。
通过插值,可以得到最终的像素点位置。
5.渲染:将计算得到的像素点位置应用到皮肤上,实现角色的变形和动作表现。
应用场景骨骼蒙皮2D算法在游戏开发中有广泛的应用场景,特别是在2D角色动画方面。
1.角色动画:通过骨骼蒙皮2D算法,可以实现角色的自由变形和动作表现。
角色可以根据骨骼节点的变换矩阵进行各种动作,如走、跑、跳等,实现更加生动的角色动画效果。
2.物理模拟:骨骼蒙皮2D算法可以与物理引擎结合使用,实现更加真实的物理模拟效果。
通过对骨骼节点施加力或碰撞检测,可以实现角色的受力和碰撞反应。
3.角色定制化:通过骨骼蒙皮2D算法,可以实现角色的定制化。
裂缝骨架化算法
裂缝骨架化算法1.引言1.1 概述裂缝骨架化算法是一种用于图像分析和处理的关键技术,特别适用于裂缝检测和分析。
在许多工程和科学领域,如土木工程、岩石力学和地质勘探等,裂缝一直是一个重要的问题。
裂缝的存在可能会导致结构的破坏,影响其性能和寿命。
因此,准确且高效地检测和分析裂缝对于维护结构安全至关重要。
裂缝骨架化算法的主要目标是从图像中提取裂缝的骨架形状。
通过将裂缝图像转化为骨架图像,可以更好地描述和分析裂缝的几何特征。
具体而言,骨架化算法可以将裂缝图像中的像素点转化为具有裂缝形状的线段,从而更好地表示裂缝的形态特征。
通过分析骨架化结果,我们可以得到裂缝的长度、方向、分支情况等重要信息,从而更全面地了解裂缝的特征和性质。
裂缝骨架化算法的关键要点包括图像预处理、骨架化过程和后处理等。
首先,需要对原始图像进行预处理,包括图像去噪、图像增强和边缘检测等步骤,以提高图像质量和裂缝的可视性。
然后,通过一系列的骨架化操作,将裂缝图像转化为骨架图像。
常用的骨架化方法包括细化、切割和迭代等算法。
最后,可以进行后处理操作,如裂缝宽度测量和裂缝分析等,以获取更详细和准确的裂缝特征。
本文旨在对裂缝骨架化算法进行详细的介绍和分析,包括算法原理、实现步骤和实验结果等。
同时,还将探讨当前存在的挑战和问题,并探讨未来的研究方向。
通过深入研究裂缝骨架化算法,我们可以为裂缝检测和分析提供一种有效和可靠的方法,为工程和科学领域的相关研究和实践提供有力支持。
1.2 文章结构本文将介绍裂缝骨架化算法的原理和应用。
文章主要分为引言、正文和结论三个部分。
引言部分首先对裂缝骨架化算法进行概述,简要介绍算法的定义、作用和研究背景。
然后,详细说明了本文的结构,明确了各部分的内容和组织方式。
最后,明确了本文的目的,即通过分析裂缝骨架化算法的要点,探讨其在实际应用中的潜力和局限性。
正文部分将深入探讨裂缝骨架化算法的要点。
2.1 节将重点介绍裂缝骨架化算法的第一个要点,包括算法的基本原理、核心思想和关键步骤。
基于MicroCT的骨小梁参数测量系统的应用效果分析
基于MicroCT的骨小梁参数测量系统的应用效果分析吴沛泽;罗守华;陈功;柳慧芬;陈斌【摘要】In order to measure osteoporosis cases in animal clinical trials, the research developed a trabecular bone parameters measurement software system based on MircoCT images. On the premise of keeping skeletal structure intact, the paper carried on MicroCT scan on 12 samples of adult pig frontal bones and maxillary bones. Based on the two-dimensional sectional images, measurement of parameters such as bone density and trabecular thickness was conducted through the process of data import, three-dimensional visualization, and delineation of region of interests, and binary image processing. The results of the measurement was compared with BoneJ, which conifrmed the accuracy of measurement system (relative error <5% for each parameter). The system also allowed intuitive visualization and had a high application value in terms of animal trabecular parameter measurement.%为了更全面便捷地衡量动物临床试验骨质疏松情况,开发了一套基于MircoCT图像的用于测量骨小梁参数的软件系统。
python数字图像处理(19):骨架提取与分水岭算法
python数字图像处理(19):⾻架提取与分⽔岭算法⾻架提取与分⽔岭算法也属于形态学处理范畴,都放在morphology⼦模块内。
1、⾻架提取⾻架提取,也叫⼆值图像细化。
这种算法能将⼀个连通区域细化成⼀个像素的宽度,⽤于特征提取和⽬标拓扑表⽰。
morphology⼦模块提供了两个函数⽤于⾻架提取,分别是Skeletonize()函数和medial_axis()函数。
我们先来看Skeletonize()函数。
格式为:skimage.morphology.skeletonize(image)输⼊和输出都是⼀幅⼆值图像。
例1:from skimage import morphology,drawimport numpy as npimport matplotlib.pyplot as plt#创建⼀个⼆值图像⽤于测试image = np.zeros((400, 400))#⽣成⽬标对象1(⽩⾊U型)image[10:-10, 10:100] = 1image[-100:-10, 10:-10] = 1image[10:-10, -100:-10] = 1#⽣成⽬标对象2(X型)rs, cs = draw.line(250, 150, 10, 280)for i in range(10):image[rs + i, cs] = 1rs, cs = draw.line(10, 150, 250, 280)for i in range(20):image[rs + i, cs] = 1#⽣成⽬标对象3(O型)ir, ic = np.indices(image.shape)circle1 = (ic - 135)**2 + (ir - 150)**2 < 30**2circle2 = (ic - 135)**2 + (ir - 150)**2 < 20**2image[circle1] = 1image[circle2] = 0#实施⾻架算法skeleton =morphology.skeletonize(image)#显⽰结果fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=(8, 4))ax1.imshow(image, cmap=plt.cm.gray)ax1.axis('off')ax1.set_title('original', fontsize=20)ax2.imshow(skeleton, cmap=plt.cm.gray)ax2.axis('off')ax2.set_title('skeleton', fontsize=20)fig.tight_layout()plt.show()⽣成⼀幅测试图像,上⾯有三个⽬标对象,分别进⾏⾻架提取,结果如下:例2:利⽤系统⾃带的马图⽚进⾏⾻架提取from skimage import morphology,data,colorimport matplotlib.pyplot as pltimage=color.rgb2gray(data.horse())image=1-image #反相#实施⾻架算法skeleton =morphology.skeletonize(image)#显⽰结果fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=(8, 4))ax1.imshow(image, cmap=plt.cm.gray)ax1.axis('off')ax1.set_title('original', fontsize=20)ax2.imshow(skeleton, cmap=plt.cm.gray)ax2.axis('off')ax2.set_title('skeleton', fontsize=20)fig.tight_layout()plt.show()medial_axis就是中轴的意思,利⽤中轴变换⽅法计算前景(1值)⽬标对象的宽度,格式为:skimage.morphology.medial_axis(image, mask=None, return_distance=False)mask: 掩模。
基于LUT的快速3D气道树骨架线提取
基于LUT的快速3D气道树骨架线提取刘明威;顾力栩【摘要】In order to improve the efficiency of lung airway skeleton extraction,this paper introduces a new look-up-table (LUT) based thinning algorithm.This new approach consists of three major steps:the analysis and creation of the thinning model and the establishment of LUT based on above thinning model result.Thinning process by index-searching uses the LUT.Branch cutting based on the result of thinning obtains the final result.The usage of LUT index-searching during the thinning step transforms simple point judgments into LUT index search and has significantly improved the performance of the wholealgorithm.Experimental results demonstrate that the new skeleton algorithm is 22.95 times faster than the existing thinning algorithm.%为提高肺部支气管骨架线的提取效率,提出并使用一种基于look-up-table (LUT)的腐蚀细化算法.分析建立腐蚀模型,并根据该模型优化建立了LUT,以该LUT为依据通过索引查找对原始数据进行快速腐蚀细化,对得到的腐蚀结果进行剪枝处理以得到最终的骨架线.实验结果表明:提取过程中LUT的应用从根本上降低了腐蚀细化中判断的复杂度,将复杂的简单点判断问题转化为LUT中的查询问题,从而极大地优化了腐蚀细化中关键的腐蚀过程.相比传统方法,基于LUT的腐蚀细化算法显著提高了骨架线的提取速度,较传统细化法提速近22.95倍.【期刊名称】《哈尔滨工业大学学报》【年(卷),期】2017(049)005【总页数】7页(P134-140)【关键词】计算机辅助诊断;气管树;虚拟支气管镜;骨架线;查找表【作者】刘明威;顾力栩【作者单位】上海交通大学生物医学工程学院,上海200240;上海交通大学生物医学工程学院,上海200240【正文语种】中文肺癌是威胁人类生命健康的恶性肿瘤疾病,中国目前总体肺癌发病率增长了19.48%,这很可能是加剧的环境污染问题如大规模雾霾引起的[1]. 早期诊断能大幅度提高病患存活率,但目前早期诊断率仅15%[2]. 常见肺癌早期诊断手段包括CT成像与光学内窥镜. CT成像拥有密度分辨率高、操作简单等优势,但传统CT只能提供单层的断面信息,不直观,且在诊断过程中病人需承受大量放射辐射;光学内窥镜可在零辐射下观察到管腔内部真实纹理色彩,但操作上要比CT成像复杂得多.随着计算机辅助诊断技术的发展,虚拟支气管镜VB[3](virtual bronchoscopy)技术在肺癌诊断领域正逐渐得以普遍应用. 该技术利用从CT数据中重建的气管模型,对肺部疾病诊断有重大意义. 临床表明VB不仅可以显示有无气道异常如支气管狭窄等,还可以配合导航系统引导经支气管镜肺活检,明显提高支气管镜在肺部外周病灶诊断效率. 相对于传统内窥镜而言,VB引导下的导航技术具有以下优点:1)定位准确,诊断效能高;2)可快速引导支气管镜,缩短检查时间,减少病患痛苦;3)可减少支气管镜检查次数;4)可提供自由的虚拟观测角度,降低支气管异常的辨别难度;5)可部分代替X线引导的支气管镜活检,减少辐射;6)可避免盲目穿刺,降低并发症发生率. 大量文献证实虚拟内窥镜能在不失诊断准确率的基础上,保障诊断的微创性[4-5].在虚拟内窥镜实现过程中,快速的骨架线提取一直是其中的难点和要点. 而在VB 中,一个良好提取的骨架线不仅可以提供直观的支气管拓扑结构,还可以为管腔内浏览起到引导作用. 与人体其他管腔如结肠、血管相比,支气管结构更为复杂[6],体现在:1)复杂的拓扑结构,拥有多级分支,多通路;2)各级分支粗细不一;3)个体差异性,不同人支气管虽在级数上有一定相似性,但大小和分支位置却存在差异. 目前三维骨架提取方式主要有距离变换法、中轴变换法和腐蚀细化算法. 然而由于支气管的复杂性,这些方式在支气管骨架线的提取上都略显性能不足. 随着当今4DCT[7]数据的逐步普及,传统方法的运算速度更显得不尽人意.本文提出一种基于腐蚀细化的改进三维骨架线提取方法,以克服传统腐蚀细化方法中复杂度高、耗时长的问题. 本方法充分利用了当今计算机多核以及高内存的优势,在传统三维腐蚀过程中引入LUT. 相关实验证实,本方法能够显著提高骨架线的提取速度.1.1 骨架线基本定义骨架(Skeleton)是指与原物体具有一致连通性和拓扑结构的细曲线的一种理想表示,就是位于物体内部,且能体现其拓扑特征的简化图形[8]. 在三维情况下提取的骨架线需要满足如下要求[9]:1) 连通性,骨架线应与目标物体拥有相同的连通性;2) 居中性,骨架线尽量保持在管腔的中央;3) 单体素性,组成骨架线的体素要求为单元宽度. 对于简单的柱状组织,中心线只有唯一的一条,而对于支气管树或血管树这种复杂的管状结构,中心线会有多条,也被称作为骨架线.1.2 现有方法综述就目前而言,二维的中心线提取算法已经相对成熟. 相对而言,三维中心线的提取方式只有距离变换法、中轴变换法和腐蚀细化算法.距离变换法[10]是指根据不同目的,将物体的体素点进行距离标识. 目前主流的方法是基于双距离场的方法[11]:首先对物体进行边界距离变换,得到体素到达边界的边界距离场DFB (distance from boundary);其次指定源点,进行源点距离变换,得到源距离场DFS (distance from source);最后通过边界距离场中局部最大值的筛选,配合源距离场进行骨架点的连接. 中轴变换法[12]在二维上可以用最大内切圆盘的相关术语定义,而在三维上则表现为最大内切球中心的集合. 其中圆盘中心到达边界的距离称为圆盘法线,一个目标内点的最大内切圆在边界上至少有两个切点,而每个对称点有两个或多个圆盘法线. 腐蚀细化算法[13]的思想则更为朴素,根据物体欧拉特性[14]以及连通性的不变性,给出在删除后不影响原物体拓扑结构的简单点,并以此为依据均匀、对称地从不同方向对目标物体边缘上的简单点(Simple Voxel, SV)[15]进行剥离,直至仅剩下单像素宽的体素集合,去除该集合中的伪骨架点后得到最终的骨架线.以上方法各自均有不同的局限性和一些共同不足. 距离变换法中,在构建双距离场时不仅因需要对各体素点以迭代的方式进行距离标记而导致高时耗,还因需要与目标物体同样大小的内存空间储存距离场而带来高内存消耗. 同时,依据不同的欧氏距离定义建立的距离场会产生不同的候选中心点,直接影响骨架线结果的一致性[16],且候选中心点通常是不连续的,连接时会造成骨架线在曲率较大位置的离心偏移,难以保证居中性. 中轴变换法中,由于中轴变换是理想的数学模型描述,主要基于数学的几何推理证明,从而导致使用机器语言进行实现的难度大、算法复杂度高,常见的模型有地表火模型[17],距离曲面脊线模型[18]. 以上两种方法存在共同的缺陷就是易受边缘噪声干扰,且难以保证骨架的连续性. 腐蚀细化算法的不足在于需要不断地对边缘的简单点进行判断,现有的判断模型复杂度均不够理想,导致当目标物体体素点过多时,带来巨大的时耗.考虑到基于距离场的算法对于边缘噪声的敏感性和内存的大量消耗,以及传统腐蚀细化算法中对边缘点反复判断的高复杂度,本文提出一种基于LUT的快速三维腐蚀细化算法. 该方法保留了传统腐蚀细化算法的稳定性,以及结果中对目标物体拓扑结构和连通性的完好保留性,并通过使用LUT的思想简化细化过程,避免重复判断,显著提高了细化速度. 该方法首先从原始数据中用区域增长的方式分割出支气管二值图像,建立腐蚀细化模型并建立LUT,然后查找LUT进行腐蚀细化,最后对细化的结果进行剪枝处理.2.1 支气管二值数据的获取采用有监控的动态阈值区域生长配合形态学闭操作来获取组成支气管,流程及效果如图1所示. 首先以气管壁与空气CT值的差异为依据,通过应用DMQ (dynamic marking QUEUE)的数据结构进行增长,提高了提取的速度. 在顶层CT中选择气管入口作为增长原点压入DMQ,目标点离开DMQ时对其6邻域进行增长判断,若符合则压入DMQ. 在判断目标点是否归入增长区域时,采用了18邻域平均值比较的方式,最大可能增加分割目标点数. 对每一轮新增的点与上一轮增长结果进行比较,以进行溢出监控. 该方法得到一个26连通的初步结果,为平滑边缘、填充管腔的空隙,在其基础上使用公式IMG ·M = (IMG ⨁M) ⊕M进行形态学闭操作,用同一模版M分别对IMG进行膨胀腐蚀操作得到最终的二值分割结果.2.2 细化方法细化过程具体分为4步:1)腐蚀模型的建立; 2)基于腐蚀模型建立LUT(提高速度的关键步骤);3)基于LUT进行快速细化; 4)对腐蚀结果进行剪枝处理.2.2.1 腐蚀模型的建立在三维空间V 3中,设中心点为c (x, y, z),对于任意点p (i, j, k)有如下的邻域定义:Nb6( p ) = { p(i, j, k)∈V3 | |i-x| + |j-y|+ |k-z| = 1},Nb26( p ) = { p(i, j, k)∈V3 | |i-x|<2 ∩|j-y|<2∩|k-z| <2},Nb18( p ) = { p(i, j, k)∈V3 | |i-x| + |j-y|+ |k-z| < 3}∩ Nb26( p ).将属于目标物体的体素定义为前景点Sfg,其余定义为背景点Sbg. 在前景点集合中存在子集Ssub-fg,若其中所有元素均符合以下四种判断准则[19],则称之为简单点SV (simple voxel).a) ∃ Sfg in Nb26 and Sum(Sfg in Nb26)>1;b) ∃ Sbgin Nb6;c) ∀ Sfg in Nb26 and is 26Connected(Sfg);d) ∀ Sbg in Nb6 and is 6Connected By Nb18(Sbg).a、b条件可以直接通过相应邻域中的前景点、背景点分布获得,而c、d条件的判断才是关键.对于条件c,提出一种26邻域区域增长法,如图2所示. 根据条件c的描述易证明:若Nb26中的前景点可以彼此26连通,那么在该Nb26中,一定有且只有一个26连通的前景点区域. 因此,取26邻域中的任意Sfg,在该Nb26中进行26邻域的前景点区域增长,得到增长结果集合S′. 将其与26邻域中的前景点构成的集合S进行比较,若两者点数相同,则符合条件c.在条件d的判断上,并不能完全与条件c等同,因为在Nb18中的Sbg中,6连通的数量并不唯一. 充分考虑到这一点,利用Nb18中Sbg的6邻域局部区域增长法,使用列表套列表的结构来储存连通的6邻域数组. 在遍历结束后,将Nb6中的背景点集合S与连通的6邻域列表中的Si依次进行比较,得到是否可以删除.2.2.2 邻域分布分析与LUT的建立分析腐蚀模型可以看出,判断一个前景点是否为简单点是由a、b、c、d这4个条件的满足情况决定的. 进一步分析,条件a为非孤立点的判断,取决于Nb26 ;条件b为边界点的判断,取决于Nb6;条件c为Nb26的背景点的26连通情况,取决于Nb26;条件d为Nb26 前景点的18连通情况,同样取决于Nb26. 因此可得出结论,对于任意体素点p,可根据其Nb26(p)分布情况VC(voxel combination)得到其简单性.在二值图像前提下,任意体素点只有0或1两种取值. 如图3所示,若对26邻域指定排列顺序,则可等同于一个26bits的二进制数,进而任意一种VC将对应唯一的26bits二进制数,而相对的任意一个26bits二进制数也能唯一映射为一种VC. 基于以上分析,可联想到建立LUT辅助腐蚀细化. 在腐蚀细化过程中,将目标点的26邻域VC转化为26bits的索引,在LUT中进行查询判断. 文献[20]显示LUT在二维的细化中得到了很好的应用,值得一提的是,由于三维计算量巨大,空间分布复杂性以及受拘束于过去计算机的内存,三维LUT鲜有人尝试.为避免建立LUT过程中的重复判断,对体素的邻域的空间分布状态进行特征分析. 对于任意立方体,给出如下对于相似体素分布SVC (similar voxel combination)的定义:1) 通过任意旋转变换可以完全重合;2) 通过左右手坐标系对换可以完全重合,即条件1)可解释为依次以立方体每一面朝向的坐标系方向为观察方向,而后以该方向为轴向,使用如式(1)~(3)中对应方向的旋转矩阵对立方体进行围绕该轴向的三维旋转,为保证立方体空间位置不变,这里旋转的角度应该分别取0°、90°、180°、270°,这样通过旋转可得4*6 共24种SVC;条件2)可解释为条件1)基础上的镜像变换,因此同样存在24种SVC. 因此可得出结论,对于各向异性的立方体,存在24+24共48种SVC,应用在二值化的Nb26情况下,粗略估算在全空间2^26中存在2^26/48约为1398101种SVC.而在二值化的Nb26情况下,并非所有分布都是各向异性,存在着大量的自反对称,经过式(4)的计算,其中i表示Nb26中前景点的个数,R(i) 表示Nb26中重复的组合个数,由于二值互补性,因此只需计算13次(0~12个前景点的情况),外加13个前景点的情况. 针对i取值不同时需要具体列出对称情况进行计算,但由于其复杂的旋转对称性,需要使用计算机辅助逻辑进行计算,最终得到不同前景点个数下SVC如表1所示,SVC一共有1426 144种,并在实际运算遍历中加以检验.基于以上分析,本文提出多线程并行配合双布尔数组的算法建立LUT,数组大小为2^26,下标代表该索引值所唯一对应的VC. 其中一个数组为LUT,是后续腐蚀细化中所依赖的参照,其取值表示该VC下的中心点是否为简单点;另一个数组为MT(marking table),其取值用来表示该VC是否已被计算. 将所有2^26个索引等分为多个索引段,平均分配给多个子线程,配合多核CPU进行计算,以达到最高的计算效率.所有子线程将共享LUT和MT,每个子线程将同时并行遍历被分配的索引段. 在具体计算索引时,每一次简单点判断的成本很高,但应用双数组算法可有效避免重复计算. 对于一个索引值,首先在MT中查找判断该索引值是否已被计算,若尚未计算,则将该索引值转换为其对应的VC,并根据前文的判断条件和方法得出其是否为简单点;而后通过正方体的旋转对称性,获取该VC的所有其他47个SVC,并转换为索引序列IA(index array);最后在LUT中将IA中的索引值赋予与该VC相同的简单性,同时在MT中将IA中的这些索引值标记为已判断. 双数组的优势也在此,通过标记MT避免了遍历到SVC所对应索引值时潜在的重复简单性判断,从而大大减少了判断的次数,整体加速了LUT的建立过程. 为更为直观,下面给出该流程框架的伪代码.函数 1: CreateLUT(创建LUT 的主函数)输入: 需要的线程数目 threadNumber.输出: 计算好的lutArray.for each i in threadNumber dosubThreads i = start_new_thread( MultiThreadCalculate( lutArray, mtArray, range i ) )end forwait_sub_threads( subThreads )write_to_bin_file( lutArray )函数2: MultiThreadCalCulate(用于计算指定区段的子函数)输入: 公共使用的lutArray,用于标记是否计算过的mtArray,需要遍历的区段range.输出: 计算指定区段range后的lutArray,标记指定区段range后的mtArray for each i in Rangeif not mtArrayi thenisSimple = isSimplePoint(i)similarIndexArray = getSimilarIndex(i)for each j in similarIndexArraylutArrayj = isSimplemtArrayj = trueend forend ifend for2.2.3 基于LUT进行迭代腐蚀细化在建立好LUT的基础上,传统的腐蚀细化过程便得以优化,其中对于SV的判断可以直接依据LUT的结果,而不是重新对前文4个定义条件的判断. 在进行细化前先将图像中的前景点存入临时数组PointListfg,以避免重复遍历,提高效率. 而后进行如下操作:1)在PointListfg中根据Nb26体素分布情况寻找边缘点,得到PointListborder.2)遍历PointListborder中的点,将Nb26体素分布转换为26 bits索引值,根据LUT的判断值进行简单点的判断删除.3)重复步骤1)、2)直至PointListborder中再也无法找到简单点为止.2.2.4 后续剪枝处理实验证实,通过上述腐蚀细化算法所得结果会在一些较粗的主气管上出现一些额外的毛刺,这无疑会对后续的内窥镜路径的规划带来不必要的分枝,需要进行剪枝处理.根据毛刺分支长度短的特点,设计了一种尺寸自适应的剪枝算法. 记当前的前景点集合为S,首先根据骨架线的体素数设置适当的剪枝阈值Threshold,设阈值百分比为th%,这里th取经验值1.7,因此经计算得到Threshold=S×th%. 接着遍历细化后的骨架线,得到所有端点PointListend ,以PointListend中的点为起点进行遍历,直至分支点,若其长度小于Threshold则将该支删除.3.1 实验环境与实验数据实验数据采用从上海肺科医院获得的5组肺CT图像序列,每组序列均包含有最少265层到最多468层CT断层图像,每层图像的分辨率均是512*512 且灰度值在-2048到4196区间内. 用于实验的PC CPU为 Intel(R) Core(TM) i7-3610QM,RAM为6GB,OS为 Win7 64-bit. 算法的实现基于VTK v6.1.0开源库,配合QT在VS2008 IDE下进行开发和实验. 3.2 LUT的建立为获取最适合本实验环境的线程数量,以得到最快的LUT建立速度,以线程数作为输入参数进行实验,得到如图4所示的结果.可见当线程数少于5个时,增加线程可显著减少用时,5个线程的处理过程表现最为优秀,当线程多于5个时,用时无明显减少.3.3 骨架线提取结果与比较为比较基于LUT的方法与传统腐蚀细化算法的效率,采用如下的对比试验,使用相同的数据集进行重复试验100次,表2列出了实验结果.在腐蚀细化阶段,基于LUT的平均时间为482.74 ms,而基于传统腐蚀细化算法的平均时间为11 077.7 ms,可见本文方法提高了22.95倍速度.3.4 骨架线的提取效果图5为本文算法提取骨架线的结果与基于距离变换算法[21]的结果,其中图5(a)、(b)、(c)三组结果中,上方为本文算法的结果,下方为距离变换算法的结果. 通过对比可以看出,基于距离变换的方法会在末端发生断裂,不连续,在同一支气管段上可能产生多分支,不方便路径规划,且操作中需要手工选定端点,既不方便也无法保证连续性;而本文方法在支气管骨架线的提取上既可以保证骨架线在细末端的连续性,不发生断裂,也无需手动,具备可重复性. 图5中的三组数据显示,该算法很好地保持了支气管拓扑结果,同时也保障骨架线的中心性、连续性、一致性和可重复性,为内窥镜的漫游提供可能.4.1 基于LUT算法的优越性本文同时还与基于距离场[21]算法得出的速度结果进行比较,由于使用不同的数据集,因此定义指标ts(thining speed)来表示算法的效率作为比较依据,ts表示毫秒内处理的立方点数, 单位为103 voxels·ms-1. 经计算,文献[21]的速度为220.16 ts,而本文的速度为45 253.39 ts,提高了205倍. 结合本文与以上两种优化过的传统骨架线提取方式[21-22]的比较,可以充分看出基于LUT的算法能在保证骨架线拓扑结构完整的基础上,显著提高运行速度.总的来说,基于LUT的算法在本质上优化了传统细化过程中的腐蚀细化环节,从而在整体上提高了骨架线提取的速度. 不仅如此,LUT的另一大优势是将LUT的建立与LUT的参照分离,这样在简单点的定义发生变化时,可以直接更新LUT的数据,而不需要更改后续整个程序.4.2 参数与复杂度分析基于LUT的腐蚀细化算法中,主要的输入参数体现于两点:一是LUT建立过程中线程数的选择,二是应用LUT进行腐蚀细化时,不同输入物体的体素数量.在LUT建立过程中,线程数是重要的输入参数,并影响最终LUT建成的时耗. 实验结果表明5个线程为最优,分析其原因为:当线程池大小为CPU数+1时,可达到最优利用率,即当执行密集型任务时既使偶尔因页缺失故障或者其他原因导致暂停时,此额外线程也可确保CPU的时钟周期不被浪费. 实验PC 为四核CPU,因此5个线程可达到最优化. 算法的空间复杂度为2*2^26*1 byte = 128 MB,用于缓存双数组中的LUT和MT,在LUT建成结束后,得到的结果为一个64MB的二进制文件,可以直接作为查找腐蚀的依据. 在时间上,对腐蚀细化的判断条件c的判断由于应用了26邻域内区域增长法,只用一重循环,是一个线性过程,将该步骤的时间复杂度降低为O(n);而对于条件d的判断,在区域增长上的平均时间复杂度依旧为O(n),而在列表比较上的平均时间复杂度为O(n2),两步之间为串行,因而整体的复杂度依旧为O(n2),但较传统方法相比依旧有所提升.在腐蚀细化的过程中,由于LUT已经确立,因此主要的输入参数为物体的体素数. 对3.3中的实验结果进行线性拟合,得到t=0.007 2v-152.91,拟合优度R2为0.988 5,其中t表示腐蚀细化的时耗,单位为ms,v表示物体的体素数. 因此可得,腐蚀细化的时耗正比于输入物体的体素数. 算法的空间复杂度取决于物体的体素数,会随着CT采集时分辨率的不同而有所变化,另外需考虑LUT占用的64 MB;在时间复杂度上,查询LUT接近于O(1),对体素点进行擦除的复杂度也为O(1),因此整体复杂度仍为O(1).4.3 基于LUT算法的不足与基于其他理论的骨架线提取方式如距离变换法相比,基于LUT的腐蚀细化法不足在于最终得到的骨架线是组成骨架线的离散点,缺少点与点之间拓扑关系的描述,为后续骨架线拓扑结构分析带来了一定的困难. 同时剪枝过程也有一定的局限性,无法精确区分细末较短的支气管与伪分支. 而在LUT的使用中依旧可以作适当优化,如在查询表的尺寸上,若是对内存有苛刻的要求,可将LUT压缩为8MB,以bit 的形式来储存每一个索引的索引值. 由于对bit的检索需要额外的比较,其效率可能会有一定下降,这是一个棘手的问题.受实验数据源限制,未进行大规模验证. 同时受实验室硬件条件限制,缺少在其他配置相当的计算机上进行重复验证,也没有获取该算法在更差运行环境中的表现. 更加充足的数据源和丰富的实验平台将能够对该算法有一个更全面的评估,这也是未来工作的目标.基于LUT的腐蚀细化算法在传统的三维腐蚀细化算法中引入LUT的思想,通过邻域区域增长法优化了简单点腐蚀模型的判断,并通过二值化26邻域旋转对称性的分析进行快速的LUT建立,在腐蚀细化中使用LUT取代传统算法中对简单点的复杂重复判断过程,从而显著提高了骨架线的提取速度. 实验结果表明:本文方法在速度上是传统细化法方法[22]的22.95倍,传统距离场方法[21]的近220倍,可以完好地保留肺部气管树的拓扑结构,具备易操作性、连续性和可重复性,为内窥镜浏览导航提供可能.【相关文献】[1] CHEN W, ZHENG R, ZENG H, et al. Annual report on status of cancer in China, 2011[J]. Chinese Journal of Cancer Research, 2015, 27(1): 2.[2] 韦春晖. 肺癌早期诊断进展[J]. 临床肺科杂志, 2010, 15(8):1136-1138.WEI Chunhui. Progress in early diagnosis of lung cancer[J]. Journal of Clinical Pulmonary Medicine,2010,15(8):1136-1138.[3] JUNG S Y, PAE S Y, CHUNG S M, et al. Three-dimensional CT with virtual bronchoscopy:a useful modality for bronchial foreign bodies in pediatric patients[J]. European Archives of Oto-Rhino-Laryngology, 2012, 269(1): 223-228.[4] WERNER H, SANTOS J R L D, FONTES R, et al. Virtual bronchoscopy for evaluating cervical tumors of the fetus[J]. Ultrasound in Obstetrics & Gynecology, 2013, 41(1): 90-94.[5] DE WEVER W, VANDECAVEYE V, LANCIOTTI S, et al. Multidetector CT-generated virtualbronchoscopy: an illustrated review of the potential clinical indications[J]. European Respiratory Journal, 2004, 23(5): 776-782.[6] DENIZ A, HOFFMAN E A, GEOFFREY M L, et al. Segmentation and analysis of the human airway tree from three-dimensional X-ray CT images.[J]. IEEE Transactions on Medical Imaging, 2003, 22(8):940-50.[7] COLE A J, O'Hare J M, McMahon S J, et al. Investigating the potential impact of four-dimensional computed tomography (4DCT) on toxicity, outcomes and dose escalation for radical lung cancer radiotherapy[J]. Clinical Oncology, 2014, 26(3): 142-150.[8] 陈刚, 吕煊, 王志成, 等. 肺 CT 图像的血管骨架化方法[J]. 计算机科学, 2013, 40(5): 274-278. CHEN Gang, LV Xuan, WANG Zhicheng, et al. Vessel Skeletonization Method for Lung CT Images[J].Computer Science, 2013, 40(5): 274-278.[9] ZHOU Y, TOGA A W. Efficient skeletonization of volumetric objects[J]. IEEE Transactions on Visualization & Computer Graphics, 1999, 5(3):196-209.[10]WAN M, DACHILLE F, KAUFMAN A. Distance-field based skeletons for virtual navigation[C]//Proceedings of the Conference on Visualization'01. IEEE Computer Society, 2001: 239-246.[11]WANG S, WU J, WEI M, et al. Robust curve skeleton extraction for vascular structures[J]. Graphical Models, 2012, 74(4): 109-120.[12]潘鹏, 贺三维, 吴艳兰, 等. 曲边多边形中轴提取的新方法[J]. 测绘学报, 2012, 41(2): 278-283. PAN Peng, HE Sanwei, WU Yanlan, et al. A new method for extracting curved-polygon medial axis[J]. Acta Geodaetica et Cartographica Sinica, 2012, 41(2): 278-283.[13]CHEN W, SUI L, XU Z, et al. Improved Zhang-Suen thinning algorithm in binary line drawing applications[C]// International Conference on Systems and Informatic. Yantai:IEEE, 2012: 1947-1950.[14]CHOI W P, LAM K M, SIU W C. Extraction of the Euclidean skeleton based on a connectivity criterion[J]. Pattern Recognition, 2003, 36(3): 721-729.[15]MICHEL C, GILLES B. New Characterizations of Simple Points in 2D, 3D, and 4D Discrete Spaces[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2008,31(4):637-648.[16]GENG H, YANG J, TAN W, et al. Fast 3D skeleton extraction of airways and applications to virtual bronchoscopy[C]// The 26th Chinese Control and Decision Conference (2014 CCDC). Changsha:IEEE, 2014: 3879-3884.[17]LIU L, CHAMBERS E W, LETSCHER D, et al. Extended grassfire transform on medial axes of 2D shapes[J]. Computer-Aided Design, 2011, 43(11): 1496-1505.[18]GOLDBERGERA L, AMARAL L A N, GLASS L, et al. Physiobank, physiotoolkit, and physionet components of a new research resource for complex physiologic signals[J]. Circulation, 2000, 101(23): e215-e220.。
matlab图像处理——距离变换
V ol. , No Month year.卷 第 期 年 月距离变换的应用(选自陆宗骐的论文)粘连区域的分割需要解决的问题有两个,即在何处分割以及如何进行分割。
文献[4]介绍了一种较为简单、直观的粘连区域分割方法——等值线跟踪法。
此方法对二值图象作距离变换,根据局部极大的特点搜索区域核心代替极限腐蚀,用等值线跟踪代替条件膨胀,利用跟踪过程中前后两次周长的跃变发现两区域合并的时间,从而确定分割点的位置,最后用作区域连接段骨架垂线的方法进行粘连部分的分割。
此方法不仅处理速度快,所得分割区域的形状也大为改观,见图1(d)。
当然,确定分割点也并非一定要采用等值线跟踪才行。
也可根据粘连区域连接段象素的特点,设计相应的分析算法不经跟踪直接寻得。
本文在完成了一幅存在粘连的钢筋端面图象分割的基础上,总结得出若干分割原则。
限于篇幅,本文只介绍象素属性分析法中分割位置的搜索算法,后续分割部分参见文献[4]。
2 术语定义2.1 三个检测环为了识别象素的属性,需要考察该象素所在邻域内相关象素的状态,本分割方法中需使用三个检测环。
它们是以当前待测象素为中心的3×3、5×5点,见图2。
它们分别称为内环、中环与外环。
图中,中心象素用星号表示,内环用数字1~8表示,中环用小写字母a~p 表示,外环用大写字母A~Z 和数字1~6表示。
主要用以测试环上数据的跳变,以及数值的大小关系与某类象素数目的多少等。
2.2 象素类型为行文方便起见,对不同类型的象素与数据定义若干专用名词。
·边界点:图象中距离值为1的点。
·背景点:图象中距离值为0的点。
·(粘连区域)连接线:连接粘连两区域的(单点宽或双点宽)骨架,它们应取同一距离值。
·当前点:处于邻域中央,考察其是否在连接线上的那个象素。
·等值点:指在检测邻域内数值等于当前点的距离值的那些象素,连接线上的点必须是等值点。
基于近似最小距离场的二维图像骨架提取方法
e r E n g i n e e r i n g a n d Ap p l i c a t i o n s , 2 0 1 3 , 4 9 ( 2 1 ) : 1 6 4 — 1 6 7 .
Ab s t r a c t :T h i s p a p e r p r o p os e s a n a l g o r i t h m f o r e x t r a c t i n g 8 - c o n n e c t e d s k e l e t o ns o f 2 D b i n a r y i ma g e s . Ea c h i n t e r i o r p i i ma g e i s e n c o d e d wi t h a n i n t e g e r c o d e a c c o r d i n g t o i t s r e l a t i v e d i s t a n c e f r o m t h e o  ̄e c t b o r d e r t o or f m a n a p p r o x i ma t e mi n i mu m
d i s t a n c e ie f l d . Cl u s t e r i s d e in f e d a s a s e t o f g e o me t r i c a l l y c o n n e c t e d l o c a l ma x i mu m p i x e l s wi t h he t s a me d i s t a n c e v a l u e . An d a l l t h e c l u s t e r s a r e t h i n n e d , a n d c o n n e c t e d wi t h t h e s h o r t e s t p a t hs . Th e p r o p o s e d a l g o r i t h m i s s i mpl e , a n d t h e r e s u l t s a c q u i r e d b y t h e a l g o r i t h m o n a n e x p e r i me n t a l d a t a d e mo n s t r a t e i t s e ic f i e n c y . Ke y wo r d s :a p p r o x i ma t e mi n i mu m d i s t a n c e ie f l d ; 2 D b i n a r y i ma g e ; pi x e l e n c o d i n g ; c l u s t e r ; s h o r t e s t p a t h
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
只要图中a、b、c 的取值满足1< b/a < 2, 1<c/b < 2, 那么 它就是欧几里德距离的一个在栅格空间中的整数近似值。
6.8 距离变换图和骨架图生成算法
1、距离变换图算法
(3)基于栅格图像间的运算
6.8 距离变换图和骨架图生成算法
1、距离变换图算法
(2)基于“欧几里德距离”公式的距离变换图算法
在二维平面上定义两点,那么他们之间的欧氏距离表示为 :
在二值图像中,1代表目标点,0代表背景;在灰度图像中,栅格的灰度值 表示该栅格点到最近目标点的距离值。这样一张M×N的图像可以表示为 一个二维数组A[M][N],其中A[i][j]=1对应的栅格表示目标点,A[i][j]=0对应 的栅格表示背景点。设B={(x,y)|A[i][j]=1}为目标点集合,则欧氏距离变换 就是对A中所有的栅格点求:
6.8 距离变换图和骨架图生成算法
2、骨架图算法
基于距离变换的骨架图生成算法
6.8 距离变换图和骨架图生成算法
3、距离变换图和骨架图的应用
距离变换图常用于地图制图、地理空间的各种量度 (如面积、密度、坡度、坡向等)及空间分析(如缓冲 区分析、Voronoi分析、DEM分析等)等方面。
其中
从而得到二值图像A的欧氏距离变换图。
欧氏距离变换1
欧氏距离变换2
加权欧氏距离变换
6.8 距离变换图和骨架图生成算法
1、距离变换图算法
(2)基于“欧几里德距离”公式的距离变换图算 法
栅格空间中的“欧几里德距离”距离变(i, j , m, n) (m i ) 2 (n j ) 2
获取距离变换图的算法
基于栅格图像间的运算获取距离变换图算法的基本方法是:反 复对原图进行“减细”和将减细结果与中间结果作算术“叠加”两种基 本运算。其终止条件是:“若对原图再减细,则将成为全零矩阵” 。
6.8 距离变换图和骨架图生成算法
2、骨架图算法
骨架图就是从距离变换图中提取出具有相对 最大灰度值的那些像元所组成的图像。 骨架图算法是一种简洁、直观的目标表示 方法,它综合利用了目标的外部轮廓和内部区 域信息,在描述目标形状方面具有传统表示方 法不可比拟的优势,且骨架图“山脊线”的连 接关系保留了空间拓扑结构的完整,从而极大 地扩展了骨架图算法的应用领域。
距离变换图和骨架图生成算法
6.8 距离变换图和骨架图生成算法
1、距离变换图算法
距离变换图算法是一种针对栅格图像的特 殊变换,是把二值图像变换为灰度图像,其中 每个像素的灰度值等于它到栅格地图上相邻物 体的最近距离。
6.8 距离变换图和骨架图生成算法
1、距离变换图算法
(1)基本思想
是把离散分布在空间中的目标根据一定的 距离定义方式生成距离图, 其中每一点的距离 值是到所有空间目标距离中最小的一个。 对于距离的量度是通过四方向距离(又称 “城市块距离”或“出租车距离”)的运算来 实现的,即只允许沿四个主方向而不允许沿对 角方向进行跨栅格的最小路段的计数。因此, 每个路段为一个像元边长。
(1)保留原物体的拓扑。 (2)骨架点的位置精确,要靠近物体的中心。 (3)骨架的连通性。 (4)获得骨架的半径值。 (5)骨架能表达物体在人类视觉中的重要部分。
6.8 距离变换图和骨架图生成算法
2、骨架图算法
骨架图算法实现的途径主要有两条,其一是基 于灰度图像的骨架图算法,其二是直接从灰度图像 提取目标骨架的算法。 其中,基于灰度图像的骨架图算法主要有3类: (1) 从距离变换中提取骨架,即通过计算灰度图像 的距离变换,从距离变换图中检测并连接骨架点得 到目标的骨架,其缺点是难以设计恰当的邻域条件, 需要较多的后处理。
6.8 距离变换图和骨架图生成算法
2、骨架图算法
(2) 采用边界模型提取骨架,即采用离散边 界模型在逼近真实形状的同时提取骨架,可 得到在噪声环境下稳健的骨架。但是,运用 该方法时因构造离散边界模型比较困难,提 取出的骨架有时可能是不连通的。
6.8 距离变换图和骨架图生成算法
2、骨架图算法
(3) 基于区域标记的方法。其典型代表是Liu等人 (2000)提出的基于Arcelli的“非脊点下降”算子 的骨架提取算法。该算法通过并行地对图像中的所 有非脊点进行下降,将图像分别标记为骨架点和背 景点,可以获得单像素宽的、与原始图像同伦的骨 架。但该算法有时不能提取一些规则目标的完整骨 架,而且算法对边界噪声比较敏感(陈晓飞等, 2003)。
6.8 距离变换图和骨架图生成算法
2、骨架图算法
自1967年Blum提出中轴的概念以来,骨架已经成为表示和识别 物体的重要手段之一,骨架组合了目标的轮廓喝中药区域信息,反 映了目标的重要视觉线索,因而,寄语骨架的目标表示和识别技术 成为牧师识别和计算机视觉的重要研究内容。
为了准确的对物体进行识别,要求骨架要求具有如下性质: