一种自动提取目标的主动轮廓法
- 格式:pdf
- 大小:555.10 KB
- 文档页数:5
目标轮廓提取方法目标轮廓提取是计算机视觉和图像处理领域中的一个重要任务,其主要目的是从图像中识别并提取出感兴趣目标的边界或外形。
以下是几种常用的目标轮廓提取方法:边缘检测:这是最直接的方法,主要利用边缘检测算子如Canny、Sobel、Prewitt、Roberts等,它们通过计算图像中像素点的梯度强度来确定边缘。
这种方法对于具有明显边缘特征的目标效果较好,但对于边缘模糊或复杂背景的情况可能效果不佳。
阈值分割:这是一种基于像素值的方法,首先设定一个或多个阈值,然后根据像素值与阈值的关系将图像分为不同的区域。
例如,对于二值图像,可以直接设定一个阈值,大于阈值的像素被视为目标,小于阈值的像素被视为背景。
这种方法简单快速,但对于目标与背景颜色接近或重叠的情况可能效果不佳。
形态学处理:这是一种基于数学形态学的图像处理技术,主要利用结构元素对图像进行膨胀、腐蚀、开运算、闭运算等操作,从而提取或强调目标的轮廓。
这种方法对于去除噪声、填补孔洞、断开连接等任务非常有效。
区域生长:这是一种基于种子点的方法,首先选择一个或多个种子点,然后按照一定的规则(如像素值相似、距离近等)将相邻的像素点加入到目标区域中,直到满足停止条件。
这种方法对于目标内部特征一致、背景复杂的情况效果较好。
深度学习:近年来,随着深度学习技术的发展,越来越多的研究者开始使用神经网络来提取目标轮廓。
例如,U-Net、Mask R-CNN等网络可以直接从图像中预测出目标的轮廓或分割掩码。
这种方法对于复杂场景和多变的目标形状具有较强的适应性,但需要大量的训练数据和计算资源。
总的来说,目标轮廓提取的方法多种多样,需要根据具体的应用场景和目标特性来选择合适的方法。
Python图像处理之⽬标物体轮廓提取的实现⽅法⽬录1 引⾔2 原理3 Python实现1)读⼊彩⾊图像2) 彩⾊图像灰度化3)⼆值化4)提取轮廓4 总结1 引⾔⽬标物体的边缘对图像识别和计算机分析⼗分有⽤。
边缘可以勾画出⽬标物体,使观察者⼀⽬了然;边缘蕴含了丰富的内在信息(如⽅向、形状等),是图像识别中抽取图像特征的重要属性。
轮廓提取是边界分割中⾮常重要的⼀种处理,同时也是图像处理的经典难题,轮廓提取和轮廓跟踪的⽬的都是获得图像的外部轮廓特征。
2 原理⼆值图像的轮廓提取的原理⾮常简单,就是掏空内部点:如果原图中有⼀点为⿊,且它的8个相邻点皆为⿊⾊,则将该点删除。
对于⾮⼆值图像,需要先进⾏⼆值化处理。
轮廓提取的⽅法有很多,在这⾥我们介绍⼀种最基本、最简单容易实现的算法。
算法原理如下:在进⾏轮廓提取时,使⽤⼀个⼀维数组,⽤来记录处理的像素点的周围8邻域的信息若8个邻域的像素点的灰度值和中⼼点的灰度值相同,则认为该点在物体的内部,可以删除;否则,认为该点在图像的边缘,需要保留。
依次处理图像中每⼀个像素,则最后留下来的就是图像的轮廓。
3 Python实现1)读⼊彩⾊图像img_name = "./20210808/sample3.png"img = cv2.imread(img_name)结果如下:2) 彩⾊图像灰度化gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)结果如下:3)⼆值化def get_binary_img(img):# gray img to bin imagebin_img = np.zeros(shape=(img.shape), dtype=np.uint8)h = img.shape[0]w = img.shape[1]for i in range(h):for j in range(w):bin_img[i][j] = 255 if img[i][j] > 127 else 0return bin_img# 调⽤bin_img = get_binary_img(gray_img)结果如下:4)提取轮廓参考上述原理,进⾏实现,代码如下:def get_contour(bin_img):# get contourcontour_img = np.zeros(shape=(bin_img.shape),dtype=np.uint8) contour_img += 255h = bin_img.shape[0]w = bin_img.shape[1]for i in range(1,h-1):for j in range(1,w-1):if(bin_img[i][j]==0):contour_img[i][j] = 0sum = 0sum += bin_img[i - 1][j + 1]sum += bin_img[i][j + 1]sum += bin_img[i + 1][j + 1]sum += bin_img[i - 1][j]sum += bin_img[i + 1][j]sum += bin_img[i - 1][j - 1]sum += bin_img[i][j - 1]sum += bin_img[i + 1][j - 1]if sum == 0:contour_img[i][j] = 255return contour_img# 调⽤contour_img = get_contour(bin_img)结果如下:4 总结通过上述简单步骤,我们实现了物体轮廓提取,相应的处理效果如下:上图中左侧为原图,右侧为我们提取的物体轮廓图。
CAD轮廓提取教程在使用CAD软件进行绘图时,经常有需要提取对象轮廓的情况,无论是为了根据轮廓制作图纸,还是进行二维轮廓分析等,轮廓提取都是一项非常有用的技巧。
在本篇教程中,我们将介绍使用CAD软件进行轮廓提取的方法。
步骤1:打开CAD软件并导入文件首先,打开你的CAD软件。
然后,通过“文件”->“打开”或者拖拽文件到软件界面中,将你要提取轮廓的文件导入到CAD软件中。
你可以导入各种格式的文件,如DWG、DXF等。
步骤2:选择轮廓提取工具在导入文件后,你可以看到CAD软件的绘图界面。
接下来,我们需要选择适当的工具来提取轮廓。
常用的工具有“闭合区域”、“偏移”、“修剪”等。
步骤3:使用闭合区域工具如果你的图形对象是封闭的,你可以使用“闭合区域”工具直接提取轮廓。
选择“闭合区域”工具后,用鼠标点击或拖动来选择图形内部的区域,然后按下回车键,CAD软件会将选定的区域作为闭合轮廓进行提取。
步骤4:使用偏移工具如果你的图形对象不是封闭的,你可以使用“偏移”工具来提取轮廓。
选择“偏移”工具后,按照软件的提示,用鼠标点击或拖动来选择需要提取轮廓的对象。
然后,输入一个偏移距离,此距离将决定提取的轮廓宽度。
最后,按下回车键,CAD软件将根据所选对象的轮廓生成一个新的对象作为提取结果。
步骤5:使用修剪工具在某些情况下,你可能需要提取轮廓的一部分。
这时,可以使用“修剪”工具来实现目标。
选择“修剪”工具后,根据软件的提示,用鼠标点击或拖动来选择需要修剪的对象。
然后,按下回车键,CAD软件将按照你的选择修剪对象,并生成提取出的轮廓。
步骤6:保存并导出轮廓在完成轮廓提取后,你可以选择“文件”->“保存”将绘图保存到本地。
如果需要导出提取的轮廓,可以选择“文件”->“导出”,然后选择合适的格式,如PDF、JPEG等。
以上就是使用CAD软件进行轮廓提取的简单教程。
通过选择适当的工具,你可以方便地提取出对象的轮廓,并进行后续的处理和分析。
主动轮廓算法 python主动轮廓算法是一种常用于图像分割的算法,它能够自动地将图像中的目标对象轮廓提取出来。
这一算法能够在医疗影像、自动驾驶等领域有着很广泛的应用。
本文将介绍如何在 Python 中使用主动轮廓算法实现图像分割。
第一步:导入相应的库在 Python 中,要使用主动轮廓算法,我们需要导入 numpy 和skimage 中的相应模块。
具体代码如下:```pythonimport numpy as npimport matplotlib.pyplot as pltfrom skimage import data, img_as_floatfrom skimage.segmentation import active_contour```第二步:读取图像要对图像进行分割,我们首先需要读取图像。
这里我们使用skimage 库自带的一张图像,具体代码如下:```pythonimage = img_as_float(data.camera())```第三步:生成初始轮廓接下来,我们需要生成初始的轮廓。
我们可以使用一些预定义的方法生成初始轮廓,如圆形、矩形等。
下面是生成圆形轮廓的代码。
```pythons = np.linspace(0, 2*np.pi, 400)x = 220 + 100*np.cos(s)y = 100 + 100*np.sin(s)init = np.array([x, y]).T```第四步:运行主动轮廓算法有了初始轮廓,我们就可以运行主动轮廓算法了。
在这里,我们可以设置循环的次数、阿尔法值以及 beta 值等参数。
代码如下:```pythonsnake = active_contour(gaussian(image, 3),init, alpha=0.015, beta=10,gamma=0.001)```这里的 gaussian 用于对图像进行高斯滤波以平滑图像。
CAD轮廓提取技巧CAD(Computer-Aided Design)是一种计算机辅助设计软件,广泛应用于工程设计领域。
在CAD软件中,轮廓提取是一项常见且重要的技巧,它能够快速准确地提取出所需的物体轮廓,为后续的设计工作提供便利。
首先,我们需要在CAD软件中打开待处理的设计文件。
在导航栏中选择相应的文件路径,双击打开目标文件。
接下来,通过使用鼠标滚轮调整视图,确保能够清晰地看到待提取的物体轮廓。
在CAD软件中,常用的轮廓提取方法有两种:直接提取和投影提取。
直接提取是一种比较简单直接的方法,通过手动选择物体边缘进行提取。
在CAD软件中,我们可以使用“线段”或“多段线”工具来绘制物体的边缘。
首先,选择绘制线段的工具,然后在设计文件的画布中点击鼠标左键,确定物体的一个边缘点,接着移动鼠标,点击鼠标左键确定物体的下一个边缘点,如此重复直至将整个边缘绘制完成。
当绘制完整个物体边缘后,我们可以通过选择“边缘提取”工具,在绘制好的边缘上点击鼠标左键,即可提取出物体的轮廓。
投影提取是一种更加高效的轮廓提取方法,通过将物体的投影投影在一个特定平面上,然后提取这个平面上的边缘来获得物体的轮廓。
在CAD软件中,我们可以使用“投影”命令来进行投影提取。
选择“投影”命令后,首先需要选择需要投影的物体,然后选择投影的平面。
在平面选择完成后,系统会自动进行投影,我们只需要通过选择“边缘提取”工具,点击需要提取的边缘即可完成轮廓的提取。
在CAD软件中进行轮廓提取时,有一些需要注意的技巧。
首先,确保选择的物体边缘尽量连续,这样可以提高提取轮廓的准确性。
其次,注意选择合适的投影平面,尽量选择与物体轮廓垂直或平行的平面,这样可以避免投影变形带来的错误。
此外,在进行投影提取时,还可以通过设置投影的灵敏度来调节投影的准确性。
轮廓提取是CAD软件中的一项基本技巧,掌握这项技巧可以帮助我们快速准确地获取所需的设计轮廓。
通过直接提取和投影提取两种方法,我们可以根据实际需求选择适合的提取方式。
计算机视觉中的轮廓线提取技术随着现代技术的迅速发展,计算机视觉技术也日渐成熟。
其中轮廓线提取技术是视觉算法中一个重要的环节,它能够从图像中提取出物体的轮廓线,为图像处理、目标检测、三维建模等应用提供基础支持。
本文将介绍计算机视觉中的轮廓线提取技术,包括方法原理、应用场景以及相关算法。
一、轮廓线提取技术原理轮廓线提取是数字图像处理中一个重要的过程,它主要通过对图像进行边缘检测和特征提取,来实现对物体轮廓线的提取。
轮廓线是物体和背景之间的边界线,它具有明显的区分度,适用于识别物体的形状、大小和位置等信息。
轮廓线提取技术的主要流程包括:1. 去噪:对原始图像进行降噪处理,使得图像更加干净,有利于后续的边缘检测和特征提取。
2. 边缘检测:经过降噪后,对图像进行边缘检测,以便提取出物体的轮廓线。
边缘检测算法主要有Sobel算子、Canny算子、Laplacian算子等。
3. 特征提取:提取边缘点,将其组成闭合的轮廓线。
常用的特征提取算法有霍夫变换、最大连通区域分析等。
二、轮廓线提取算法1. Sobel算子Sobel算子是一种边缘检测算法,在数字图像处理中广泛应用。
该算法通过对图像进行卷积操作,来提取出图像中的边缘点。
Sobel算子具有简单、易于实现的特点,但是提取出的边缘点可能不够准确,容易受到噪声的影响。
2. Canny算子Canny算子是一种比较常用的边缘检测算法,它对图像进行多次卷积操作,以提取出图像中的边缘点。
Canny算子具有高灵敏度和低误检率的特点,可以有效地提取出物体的轮廓线,受到很广泛的应用。
3. Laplacian算子Laplacian算子是一种利用二阶偏导数求解的边缘检测算法,它主要通过对图像进行拉普拉斯滤波,来提取出图像中的边缘点。
Laplacian算子具有灵敏度高、响应速度快的特点,但是容易受到噪声的干扰。
三、轮廓线提取技术的应用场景轮廓线提取技术可以应用于多个领域,如图像处理、目标检测、三维建模等。
轮廓提取的智能算法1背景介绍轮廓提取是一种在图像处理中常用的算法,它可以实现对图像中目标物体的轮廓进行提取和描述。
在计算机视觉、图像识别、物体检测等领域中有着广泛的应用。
而随着人工智能技术的不断发展,轮廓提取的算法也在不断优化和完善。
2轮廓提取的基本原理轮廓提取的基本原理是基于像素点之间的差异进行计算,将相邻的像素点进行比较,在差异达到一定阈值的情况下,就认为这两个像素点是不同的,因此可以将它们相连成线条,从而得到目标物体的轮廓线。
常用的算法有Canny算法、边缘检测算法、边缘连接算法等。
3基于深度学习的轮廓提取算法传统的轮廓提取算法存在一些问题,比如在处理复杂图像或噪声干扰图像时,提取的轮廓线可能不准确。
而基于深度学习的轮廓提取算法可以更好地解决这些问题。
基于深度学习的轮廓提取算法主要是利用深度神经网络来实现的。
它通过使用卷积神经网络(CNN)对图像进行训练,从而获取到图像中的特征信息,并将其用于轮廓线的提取和描述。
这种算法的优点在于可以针对不同类别的图像进行训练和优化,从而提高算法的准确性和鲁棒性。
4基于强化学习的轮廓提取算法另外,还有基于强化学习的轮廓提取算法,它是基于强化学习的智能算法,通过对图像中的轮廓进行监督学习和探索,来确定最优的轮廓线。
这种算法可以更好地适应复杂图像和噪声干扰的情况,从而提高轮廓提取的准确度。
5轮廓提取的应用轮廓提取的应用非常广泛。
一方面,它可以用于计算机视觉和图像识别等领域,从而实现对物体的检测、跟踪和识别等功能;另一方面,它可以用于医学影像领域,如CT扫描图像的分析和诊断等。
此外,轮廓提取还可以用于计算机图形学,如建模、动画制作、虚拟现实等领域中。
6结论随着人工智能技术的不断发展,轮廓提取的算法也在不断优化和完善。
基于深度学习和强化学习的智能算法,使得轮廓提取可以更好地适应复杂图像和噪声干扰的情况,从而提高轮廓提取的准确度和鲁棒性。
而轮廓提取广泛应用于计算机视觉、医学影像和计算机图形学等领域中,在实际应用中具有重要的意义。
CAD图形轮廓提取技巧在使用CAD软件进行设计和绘图时,轮廓提取是一项非常常见且重要的技巧。
通过提取图形的轮廓,我们可以更好地理解和分析设计,同时也能够用于后续的加工和建模操作。
在本文中,我将介绍几种常用的CAD图形轮廓提取技巧,帮助您更高效地进行设计。
一、使用闭合对象命令在CAD软件中,闭合对象是指由相交或连接线段组成的封闭形状,例如矩形、圆形等。
通过使用闭合对象命令,我们可以迅速地提取这些形状的轮廓。
首先,选择一个闭合对象,如一个矩形。
在命令栏或工具栏中找到闭合对象的命令,它通常被表示为一个封闭的形状图标。
点击该命令后,选择矩形对象。
CAD软件将自动提取出矩形的轮廓,并生成一个闭合的多段线。
您可以进一步编辑和调整这个轮廓,以满足您的需求。
二、使用修剪命令修剪命令是CAD软件中非常实用的一项功能,可以帮助我们去除不需要的图形细节,从而提取出所需的轮廓。
首先,选择修剪命令。
在CAD软件中,修剪命令通常被表示为一把剪刀的图标。
点击该命令后,按住鼠标左键在图形上拖动,将要修剪的部分标记为红色。
然后,释放鼠标左键,CAD软件将自动修剪掉标记的部分,并提取出剩余的轮廓。
三、使用轮廓命令轮廓命令是CAD软件中一项非常重要的功能,它可以帮助我们从三维模型中提取出二维平面的轮廓。
首先,选择轮廓命令。
在CAD软件中,轮廓命令通常被表示为一个平面和箭头的图标。
点击该命令后,选择三维模型上的一个平面或者一个截面,CAD软件将根据所选平面或截面提取出相应的轮廓。
四、使用边界命令边界命令是CAD软件中非常常用的一项功能,可以帮助我们从复杂的图形中提取出轮廓。
首先,选择边界命令。
在CAD软件中,边界命令通常被表示为一个封闭的线框图标。
点击该命令后,按住鼠标左键在图形上拖动,将要提取轮廓的部分标记为红色。
然后,释放鼠标左键,CAD软件将自动提取出标记区域的轮廓。
通过以上几种常用的CAD图形轮廓提取技巧,我们可以更加高效地进行设计和绘图工作。
轮廓提取的智能算法
轮廓提取是一种图像处理技术,它可以从图像中提取出物体的轮廓。
这种技术在计算机视觉、机器人、自动驾驶等领域都有广泛的应用。
随着人工智能技术的发展,轮廓提取的智能算法也越来越成熟。
传统的轮廓提取算法主要是基于边缘检测的方法,例如Sobel算子、Canny算子等。
这些算法可以检测出图像中的边缘,但是对于复杂的图像,它们往往会产生大量的噪声和误检测。
因此,需要更加智能的算法来提高轮廓提取的准确性和效率。
近年来,深度学习技术在轮廓提取中得到了广泛的应用。
深度学习是一种基于神经网络的机器学习方法,它可以通过大量的数据训练出一个模型,从而实现对图像的自动识别和分析。
在轮廓提取中,深度学习可以通过卷积神经网络(CNN)来实现。
CNN是一种特殊的神经网络,它可以自动学习图像中的特征,并将这些特征组合成更高级别的特征。
在轮廓提取中,CNN可以通过多层卷积和池化操作来提取图像中的轮廓信息。
例如,可以使用卷积层来检测图像中的边缘,使用池化层来降低图像的分辨率,从而减少噪声和误检测。
除了CNN,还有一些其他的智能算法也可以用于轮廓提取。
例如,基于图像分割的方法可以将图像分成多个区域,然后通过分析区域之间的边界来提取轮廓。
基于形态学的方法可以通过对图像进行膨
胀和腐蚀操作来提取轮廓。
这些算法都可以通过机器学习来优化,从而提高轮廓提取的准确性和效率。
轮廓提取的智能算法是计算机视觉和机器学习领域的重要研究方向。
随着人工智能技术的不断发展,我们相信轮廓提取的智能算法将会越来越成熟,为我们带来更加精确和高效的图像处理技术。
医学图像分割中的主动轮廓模型算法随着医学影像技术的发展,越来越多的医学图像被应用在诊断和治疗中。
其中,医学图像分割作为一个重要的预处理过程,被广泛应用于医学研究和临床诊断中。
简单地说,医学图像分割就是将医学图像中的目标识别、分离并提取出来的过程。
其中,主动轮廓模型算法就是一种常用的医学图像分割算法之一。
主动轮廓模型算法的基本原理是通过定义一个能够自适应改变的曲线(也称为轮廓),并将其在图像上进行移动,从而得到最佳的轮廓分割结果。
这个自适应改变的曲线,根据不同的算法实现方式,可以是一条二次曲线,也可以是一堆点或者是一条链式结构。
在移动过程中,该曲线被定义在一个平面上,而这个平面是由掩模图像和权重图像所构成的。
这些图像用于定义曲线的形状,并且可以用来控制曲线的移动速度和方向。
主动轮廓模型算法的优点在于它能够精确地分割出医学图像中的重要局部区域,并且能够将分割结果与真实分割结果进行比较,从而验证分割的准确性。
此外,该算法可以实现半自动或全自动分割,使得医生在分析图像时大大提高了效率。
此外,该算法可以在医学图像中去掉不必要的噪声,从而提高分割的准确性。
主动轮廓模型算法的具体应用可以看到多个方面。
例如,在医学影像中,可以应用该算法来识别病变组织和健康组织。
在医学图像中的分割时间,可以将该算法用于放射性肺纤维化、脑容量缩小等方面。
此外,该算法还可以用于其他医学应用中,例如心脏MRI分割、肺部肿块分割等。
总而言之,主动轮廓模型算法是一种有效的医学图像分割算法。
该算法可以高效、准确地提取出医学图像中的重要局部区域。
在医学研究和临床诊断中,它具有广泛的应用前景。
第31卷第5期 光 子 学 报 V o l.31No.5 2002年5月 ACTA PHOT ONICA SINICA M ay2002 一种自动提取目标的主动轮廓法李熙莹 倪国强(北京理工大学光电工程系,北京100081) 摘 要 提出一种新的广泛应用于数字图象分析和计算机视觉的主动轮廓(Snake)模型,引入作用方向可以自适应变化的外加强制力,使控制点能够不依赖于初始轮廓而快速地收敛到目标的真实轮廓;初始轮廓自动确定;控制点的数目可以自适应地改变;能够在背景比较复杂的图象中实现对目标轮廓的提取.用该模型对空中目标的红外图象进行的实验结果表明其具有很好的鲁棒性和实用性.关键词 主动轮廓法;Snake;红外图象;轮廓提取0 引言 主动轮廓模型又称为Snake模型,是由Kass 于1987年提出的1,它融合了分割过程的三个阶段,使得检测得到的目标边界就是一光滑连接的曲线.其主要思想是定义一个能量函数,在Snake由初始位置向真实轮廓逐渐靠近时,寻找此能量函数的局部极小值,即通过对能量函数的动态优化来逼近目标的真实轮廓.此能量函数主要由内部能量函数及外部能量函数组成.内部能量函数考虑包络本身的连续性和各点曲率的大小;外部能量函数则主要涉及到图象的一些具体情况,如图象灰度变化的梯度等因素.Kass的Snake模型中,用参量表示轮廓线v(s)=(x(s),y(s))(s为轮廓弧长),其能量函数定义为 E*snake=∫10E snake(v(s))d s =∫10[E int(v(s))+E image(v(s))+E con(v(s))](1)式中,E int表示主动轮廓线的内部能量,也叫内部力;E image表示图象作用力产生的能量,也叫图象力;E con表示外部限制作用力产生的能量,叫约束力.后两项和称为外部能量E ext=E image+ E con.内部力起到平滑轮廓、保持轮廓连续性的作用;图象力表示轮廓点与图象局部特征吻合的情况;约束力是各种人为定义的约束条件.Kass的算法存在要求外力可微、不稳定、控制参量无法确定、计算量大和时间开销大等缺点.Amini2、William s3等人改进了Kass的算法,引入硬强制力,且大大提高了运行速度(Amini的算法运算量为O(m3n)Williams的Gr eedy算法运算为O(mn),m为迭代的领域大小,n为Snake控制点的数目).不过,它们仍存在一些问题,如迭代效果依赖于初始轮廓点的选取;控制点在迭代中向高曲率边缘堆积;控制点数目固定不变,不能随目标大小变化调节等.有许多研究者针对原始Snake的缺点进行了模型改进或算法改进,如对角点判定的阈值选取方法加以改进、按照一定的规则调节控制点间距、采用不同的图象特征能量模型4,5等,不过对于初始轮廓点依然敏感或运算比较复杂。
本文以William的Greedy算法为参考,提出了一种自动的主动轮廓法(Auto-Snake),引入作用方向可自适应变化的外加强制力,从而使控制点能快速地收敛到目标的真实轮廓,不依赖于初始轮廓;初始轮廓自动确定,无需人工干预;控制点的数目可以自适应地改变;明确了各个参量的选择.该算法不仅继承前人算法的优点,而且保证算法快速收敛,适用于多种场合,在背景比较复杂的图象中也可以实现对目标轮廓的提取.1 K ass的主动轮廓法能量模型Kass和Snake模型中,内部能量可表示为轮廓对弧长的一阶导数项v s(s)和二阶导数项v ss(s)的组合E int=(( (s) v s(s) 2+ (s) v ss(s) 2)/2(2)式中,一阶项系数 控制轮廓的连续性约束,若较小,则内部力对轮廓的连续程度不敏感,在轮廓线存在缺口时,将有较大的值;二阶项系数 控制平滑程度约束,若较小,则内部力对轮廓的平滑程度不敏感,其在轮廓线曲率变大时将有较大值,在一点为0时允许Snake变得二阶不连续并演变成一个角点.图象力为直线、边缘和界限能量的线性组合为E image=W line E line+W edge E edge+W term E ter m(3)式中各项均可以从图象I(x,y)算出.W line、W edge和W term为特征系数,E line是线能量,等于图象亮度(灰度)E line=I(x,y);通过线性特征系数W line的正负,可以使Snake靠近亮线或暗线.E edge 是边缘能量,也可由一个非常简单的函数表达,即E edge=- I(x,y) 2;边缘特征系数W edge控制对轮廓所在区域的强度梯度的约束.E term是用高斯函数平滑过的图象中各级轮廓线的曲率,由曲率特征系数W edge决定其影响.式(1)的离散形式可以写为E*Sn ake= n i=1[E int(i)+E ext(i)](1)式中n是Snake控制点的数目.用有限差分 v i-v i-1 逼近弧长的一阶导数项v s(s),用有限差分 v i+1-2v i+v i-1 逼近弧长的二阶导数项v ss(s),即可得到E in t(i)的离散形式.2 自动Snake算法本文提出的用于红外图象的自动分割的主动轮廓法的能量函数(离散形式)为E= n i=0[E int(i)+E image(i)+E cont(i)](5)式中,n为控制点数目.第一项为Snake的内部能量,E int(i)= (i)・E int1(i)+ (i)E int2(i).E int1和E int2分别对应于式(2)中的一阶项和二阶项,即一阶连续性强制力和二阶连续性强制力. (i)与 (i)分别为离散的一阶项和二阶项系数.在Kass的算法中,使用 v i -v i-1 2作为E in t1的离散近似会造成曲线收缩,并使控制点汇聚到轮廓线中曲率高的部分,所以这里采用以下离散近似形式E int1= d-- v i-v i-1 (6)式中d-是各控制点间的平均距离.这样,接近平均距离的那些点将拥有较小能量值,从而促使轮廓线上的各点趋于均匀分布.二阶连续性强制力E int2仍采用Kass形式,即E int2= v i-1-2v i+v i+1 2(7)这里,为了平衡各项的影响,E int1(i)和E int2(i)分别除以其在领域中的最大值归一化到[0,1]区间.第二项E image控制图象特征,E image(i)= (i)E mag(i),E mag(i)为图象梯度幅度能量, (i)为梯度幅度系数.由于要提取目标轮廓,于是仅采用梯度幅值作为图象力,使图象梯度大处(可能为目标边缘)能量小.图象中每一点的梯度幅值为整数,取值在0~255之间.为了突出梯度幅值的作用,采用类似E int1的归一化方法是不行的.这里,对每一个控制点(该点的梯度幅值为mag),寻找其邻域内的最大和最小梯度幅值max mag和minmag,用公式(minmag-m ag)/(maxm ag-minmag)来归一化图象力.此外,对于领域内梯度幅值接近的情况,为避免图象力产生大的差异,规定如果maxm ag-minmag<5,则令最小值minmag=max mag-5.原始的主动轮廓模型的一个主要缺点就是Snake对初始位置的依赖性很大,当初始轮廓离目标较远时,往往收敛到局部最小值,而不是真实轮廓.这里,采用了一个外加的控制力E cont= (i)E r(i)(E r(i)为距离能量, (i)是系数),在控制点距离目标边缘较远时驱动控制点快速地向真实轮廓靠近,从而使Snake不依赖于初始位置的选取.外加的控制力是这样设计的:以所有控制点的重心为轮廓中心(X c,Y c),计算控制点及其邻域点到中心的距离r,控制力E cont的大小与1/r2(= E r)成正比,E cont的方向(符号)由控制点是否在目标内决定——若在目标内,则向外移动,距离r变大,符号为正;反之向内移动,r变小,符号为负,即控制点在目标外时推动其向目标内移动,而控制点在目标内时向目标外移动;此外,使E cont在控制点远离目标边缘时起作用,而接近边缘时不加考虑.这里,auto-snake算法通过取邻域内象素灰度值平均值再根据门限判断其系数 ,从而决定了E cont的方向和在能量计算中的影响.由于红外图象中目标区与背景区一般有比较明显的灰度差别,目标区与背景区在边缘处有一6075期 李熙莹等.一种自动提取目标的主动轮廓法定的灰度过渡,这里采用双门限法判断E cont的作用方向,即系数 的取值为设图象中目标区比背景区亮(目标区平均灰度高于背景区),整个图象的灰度均值为mean,方差为std,某控制点邻域灰度平均值为avgI,则依据下式判断控制点是否远离目标以及在目标内还是在目标外.当av gI>mean+ 1・std时,控制点在目标内,并远离目标边缘,此时,取 (i)=2;当avg I> mean+ 2・std时,控制点在目标外,并远离目标边缘,此时,取 (i)=-2;当mean+ 1・std> avgI>m ean+ 2・std时,控制点接近目标边缘,取 (i)=0. 1> 2,一般可根据图象质量取 1= 2~4, 2=1.参量 、 、 、 用于调节式(5)中各项的影响.在实验中, = 1.0; 取0或1(取决于该点是否为角点); ≥1.0,使图象梯度项E image在决定轮廓上控制点的运动时比E int的影响力大; 的值为2、-2或0,取决于控制点是否远离目标以及在目标内还是在目标外,从而调节E cont的作用方向,并在控制点远离目标边缘时起到很强的影响作用,使控制点快速移动到边缘附近,而当控制点在目标边缘附近时不起作用.在每一次迭代末,应计算新轮廓中每个控制点的曲率.对于曲率最大的点,在下次迭代中令 (i)=0.在第一次迭代中,令所有点的 (i)=1,以后每次迭代中,按照式[ x i/ s i- x i+1 s i+1]2 +[ y i/ s i- y i+1 s i+1]2计算各点曲率,其中, x i=x i-x i-1, y i=y i-y i-1.对于满足下列三个条件的i点,令 =0:曲率为极大值、曲率大于某个阈值、梯度幅度也大于某个阈值.Auto-Snake算法的收敛速度很快,运算量为O(mn)(m是邻域大小).能量函数在v i当前位置及其8邻域内进行计算,最小值点就是v i的新位置.在计算v i时,v i-1已经移动到了此次迭代的新位置,但是v i+1还没有移动.其算法如下所述:1)自动获取初始化轮廓,初始化参量 、 、 、 .对图象作简单的阈值分割,得到目标区的外接矩形,每隔4个象素取一点,作为初始轮廓s= (v1,v2,…,v n).对所有控制点,设 (i)、 (i)、 (i)为1, (i)为0.2)计算动态轮廓的中心c=(X c,Y c):X c=n-1ni=1x i,Y c=n-1ni=1y i.3)对所有轮廓控制点进行计算,并移动它们到邻域能量最小位置.fo r i=1to nfo r j=1to m ∥m表示轮廓点的邻域尺寸(这里为3×3大小,即m=9)E j= (i)E int1(j)+ (i)E int2(j)+ (i)E mag(j)+ (i)E r(j)E min=E5 ∥以原控制点位置的能量值为初始最小值if E j≤E minE min=E jj m in=j∥移动v i到j m in位置4)统计动态轮廓中控制点移动的数目,即能量最小位置不是原控制点位置的点数.5)如果平均距离大于上次迭代的平均距离或过于小,则调整控制点间距.6)计算各控制点曲率,决定下一次迭代的 值.7)若控制点移动的数目pstm oved小于阈值、总能量E出现周期性波动或者达到最大迭代次数,则结束.8)重复(2)~(7).此外,为了保证Snake的控制点能够很好地描述目标的形状,算法在迭代过程中可以实现对控制点的动态增加及去除.当两点间距大于某阈值时,在两点间插入一点;小于某阈值时,合并这两点.Auto-Snake算法的整个迭代过程可以分为两个阶段:1)控制力作用收敛到目标边缘区;2)图象力作用收敛到目标轮廓.对于目标与背景灰度有一定差别的红外图象,可以按照灰度值顺序分为目标内部区、目标边缘区与背景区,目标边缘区包括目标的真实轮廓.Auto-Snake的算法的能量函数中,控制力反映的是全局灰度统计结果,在迭代初始阶段所占比重大,起主要作用,从而保证Snake快速稳定地收敛到全局最小范围——目标边缘区域.由于目标的真实轮廓包括在目标边缘区内,之后由图象力起主要作用,在此区域中内寻找局部最小值——目标真实轮廓.收敛速度与控制点数目(与目标大小有关——目标大,则控制点数目多;反之则少)有关.算法收敛性与图象的复杂程度有关.对于目标与背景灰度差别较明显608 光 子 学 报 31卷的图象,只要Snake 的初始轮廓包含了目标或目标的一部分,即可稳定收敛到其真空轮廓处;对于灰度分布较复杂的图象,总的能量值会在图象轮廓处有周期性波动,也可认为其收敛.3 实验结果这里,给出用Auto -Snake 算法对实际红外图象的实验结果例举,参量 = 1.0, = 1.2.图1和图2各图中的白色亮点是轮廓控制点,其中最亮的点是角点( =0).在自动分割得到的目标外接矩形上每隔4个象素取一点作为控制点初始轮廓,如图1和图2中(a )所示.由于图2的背景比较复杂,图2(b)和(c)的亮度降为原图的一半,使控制点比较清楚.在PIII667、256M 、Matlab5.3运算平台上,图1的控制点数目为36个,迭代45次,迭代时间为3.40s ;图2的控制点数目为90个图1 背景比较简单时的结果Fig.1 R esults of infr ared image w ith simple backg ro und 图2 背景比较复杂时的结果 F ig.2 R esults of infr ar ed image w ithco mplex backg ro und(图2已经缩小为原始大小的1/4),迭代50次,迭代时间为8.13s.4 结论本文提出的Auto -Snake 算法通过引入反映全局灰度统计结果的外加强制力,使算法不依赖于初始轮廓的位置,控制点可以快速稳定地收敛到真实轮廓附近,而不是局部的最小能量位置;初始轮廓自动确定,无需人工干预;控制点数目自适应地改变,避免了轮廓失真,控制点过于集中于高曲率处;算法快速收敛;明确了参量 、 、 、 的确定方法;算法也适用于噪音较大、背景比较复杂的红外图象.参考文献1 K ass M ,Wit kin A ,T erzo po ulo s D.Snakes:activ e conto ur m odels.Inter nat ional Jour na l of Co mputer V ision,1988,(1):321~3312 A mini A A ,T ehr ani S,W eymo ut h T E.U sing dy namic pro gr amming for minimizing the energ y of activ e conto ur s in t he pr esence of har d co nst rainst.In:P ro ceeding s,Second I nter natio nal Co nfer ence o n Co mput er V isio n,1988:95~993 W illiams D J ,Shah M .A fast a lg or ithm fo r active conto urs and cur vatur e est imation .CV GI P :I mage U nderstanding ,1992,55(1):14~264 杨杨,张田文.一种新的主动轮廓线跟踪算法.计算机学报,1998,21(8):297~3025 冯炯,戚飞虎.Snake 成长阶段的分析方法.上海交通大学学报,1999,31(9):1149~11536095期 李熙莹等.一种自动提取目标的主动轮廓法AN AUTOMATIC ACTIVE CONTOUR ALGORITHMFOR EXTRACTING OBJECTLi Xiy ing ,Ni GuoqiangD ep ar tment of Op tical Eng ineer ing ,Beij ing I nstitute of T echnology ,Beij ing ,100081Receiv ed date :2001-09-19Abstract Active contour model("Stake")has been widely used in application of digital im ag e analysis and com puter v ision.In this paper,a new active contour model ——"Auto -Snake "is proposed.Adaptiv e hard constrain is introduced ,so contro lling po ints of Snake undepend o n the positio n of orig inal co ntour,and the Snake co nv erg es on real edge of object quickly.T he orig inal position o f Snake is autom atically obtained.T he num ber of controlling points o f Snake can be chang ed adaptively.And co ntour of o bject also can be go tten in som e complex background .Exper im ent results fo r infrared images of aerial objects demo nstr ate the robustness and practicality of this alg orithm .Keywords Activ e co ntour;Snake;Infrared image;Contour ex tr actingLi Xiying receiv ed the M E deg ree fro m Beijing Institute of T echno logy ,China .She is now a PhD candidate of optical eng ineer ing ,Beijing Institute o f Technolog y and eng aged in digital imag e pro cessing ,tar get tracking ,infr ar ed imag e pr ocessing and their real-time application.610 光 子 学 报 31卷。