当前位置:文档之家› 基于图像边界跟踪的顶点矩阵算法

基于图像边界跟踪的顶点矩阵算法

基于图像边界跟踪的顶点矩阵算法
基于图像边界跟踪的顶点矩阵算法

—231—

基于图像边界跟踪的顶点矩阵算法

李雨田,晋小莉

(西安工业大学机电工程学院,西安 710032)

摘 要:分析传统图像边界跟踪中存在的问题,根据Freeman 链码跟踪方法提出一种改进的基于像素顶点矩阵的边界跟踪方法,定义图像的像素顶点矩阵,并利用像素顶点矩阵跟踪边界,制定边界跟踪的搜索规则,同时抽取边界的顶点链码,生成围线树结构,用像素顶点的链码值表示边界。实验结果表明,该算法优于一般的链码跟踪方法,具有广泛应用性。 关键词:边界跟踪;像素顶点矩阵;链码

Vertex Matrix Algorithm Based on Image Boundary Tracking

LI Yu-tian, JIN Xiao-li

(School of Electrical and Mechanical Engineering, Xi’an Technology University, Xi’an 710032)

【Abstract 】The problems in traditional image border tracking are analyzed. According to Freeman chain code boundary tracking method,a pixel-based boundary tracking method of vertex is given. The image pixel vertex matrix is defined. The pixel matrix is used to track the boundary vertex. The boundaries track search rules is set up. The apex of the boundary chain code is abstracted, and the tree structure is generated. The pixel vertex chain code value is used to indicate the boundary. Experimental results show this algorithm is better than the Freeman chain code tracking methods, and has a wider versatility.

【Key words 】boundary tracking; pixel vertex matrix; chain code

计 算 机 工 程Computer Engineering 第36卷 第1期

Vol.36 No.1 2010年1月

January 2010

·图形图像处理·

文章编号:1000—3428(2010)01—0231—02

文献标识码:

A

中图分类号:TP391

图像处理是计算机学科的一个重要研究领域,也是计算机图形处理的一项核心技术。边界是图像最基本的特征,包含了可用于识别的有用信息。边界存在于目标与背景、目标与目标、区域与区域之间,给人们描述或识别目标以及解释图像提供了有价值的特征参数。

1 边界的表示方法

边界的表示方法有很多,链码表示最早于1961年由Freeman 提出,如图1所示,用0,1,2,3这4个代码表示四方向链码,用0,1,2,3,4,5,6,7这8个代码表示八方向链码。

1

42

23

(a)四方向链码 (b)八方向链码

图1 四方向链码和八方向链码

从图像边界上的任一像素点开始,按某一方向行走(逆时

钟或顺时针),并用码记录相邻像素间的行走方向,直到回到起始点为止,就构成了图像的Freeman 链码。图像边界可由Freeman 链码唯一表示。

2 边界跟踪的研究现状与存在的问题

边界跟踪算法存在的问题主要有以下2个方面:

(1)漏追踪和重复追踪,即丢失外轮廓或内轮廓。文献[1]为了避免丢失内轮廓,采用边界填充的办法,显然这很费时。

(2)破坏连通性,将一个轮廓跟踪成多个轮廓。为解决该问题,文献[2]采用2种标记色分别标记边界像素和与边界近邻的背景像素,以解决漏追踪和重复追踪问题。

顶点链码出现较晚,基于顶点链码的跟踪算法也较少,现有的边界跟踪算法大都是基于Freeman 链码给出的,文 献[3]给出的边界标定自动机获得的是边界的顶点链码,但该文也没有给出图像的围线树结构的生成算法。

本文给出一种能正确跟踪任意复杂图像边界的基于像素顶点矩阵边界跟踪算法,通过跟踪边界获得边界的顶点链码。

3 边界跟踪与围线树结构的生成

边界跟踪包括3个步骤[4]:

(1)确定作为搜索起点的边缘点,根据算法不同,可以是一个点或多个点,起点的选择很重要,整个算法对此点的依赖很大。

(2)确定和采取一种合适的数据结构和搜索机理,在已发现的边界点基础上确定新的边界点,这里要注意研究先前的结果对选择下一个检测点和下一个结果的影响。

(3)确定搜索终结的准则或终止条件,并在满足条件时停止进程,结束搜索。

3.1 定义像素顶点矩阵

文献[5]提出用边界像素的顶点来标记区域边界的方法。

基金项目:西安工业大学校长基金资助项目“CNC 数控雕刻机技术开发与研制”(605-01000841)

作者简介:李雨田(1981-),男,硕士研究生,主研方向:数控技术,图像处理;晋小莉,教授

收稿日期:2009-09-20 E-mail :liyutian721@https://www.doczj.com/doc/f95203533.html,

—232

—对于正四边形点阵上的图像,可以有3种不同性质的顶点,如图2所示,分别用代码1,2,3作标记。

11

1

12

图2 图像边界的顶点链码

在图2所示的3种边界像素顶点的码值表示基础上,本

文定义图像中的所有可能的像素顶点的链码值,如图3所示。其中,一个方格表示一个像素,箭头右端的数值为像素顶点对应的顶点链码值。

1

2

3

6

图3 像素顶点与其对应的链码值

3.2 边界跟踪与顶点链码的抽取

利用像素顶点矩阵给出边界的跟踪与顶点链码的抽取算法。按从上到下,从左到右的顺序遍历像素顶点矩阵M ,当M [u ][v ]=1,2,3或6时,(u ,v )点为图像边界上的点,这时追踪该区域边界,抽取该区域边界的顶点链码。

下面给出图像的边界跟踪与顶点链码抽取算法。

(1)确定起始点和初始行走方向。根据顶点链码的特性,按从上到下,从左到右的顺序遍历像素顶点矩阵,遇到的 第1个边界像素顶点只有2种可能,其对应的顶点链码为1或3,所以,当遍历像素顶点矩阵,遇到链码1,3或6时,说明当前位置在图像区域的边界上,那么就开始跟踪该区域边界。当链码为1时,则该起始点在连通区域的外边界上,当链码为3或6时,则该起始点在图像区域的内边界上。因为按逆时针跟踪区域边界,当起始顶点的码值为1时,则设定初始行走方向为3,当起始顶点链码为3或6时,则设定初始行走方向为0。

(2)图像边界的跟踪搜索规则。图像的边界跟踪搜索规则包括边界跟踪的坐标迁移规则和行走方向变化规则。假设当前顶点坐标为P i (u i ,v i ),在P i 的行走方向为e i ,像素顶点矩阵

在P i 的取值为c i ,

那么从当前点迁移到下一点的坐标P i+1(u i +1, v i +1)和行走方向e i +1可由下面的坐标迁移规则和行走方向变化规则求出。

1)坐标迁移规则:当e i =0时,有u i +1=u i +1, v i +1=v i ;当e i =1时,有u i +1=u i , v i +1=v i -1;当e i =2时,有u i +1=u i -1, v i +1=v i ;当e i =3时,有u i +1=u i , v i +1=v i +1。

2)行走方向变化规则:当c i +1=1时,有e i +1=(e i +1)%4;

当c i +1=3或c i +1=6时,

有e i +1=(e i +3)%4;当c i +1=2时,有e i +1=e i 。 (3)边界的顶点链码的跟踪抽取及终止条件。根据(1)提供的起始点坐标、初始行走方向,按(2)给的坐标迁移规则和行走方向变化规则,可以沿图像区域边界顶点行走,当每走过像素顶点时,就记录该点的顶点链码值,这里当走过顶点的顶点链码值为6时,该顶点的顶点链码值作为3被记录下来,回到起始点时结束,这样就获得了该区域边界的顶点链码序列。加上起始点和初始行走方向,就获得了区域边界的顶点链码表示。

3.3 跟踪图像边界与定义围线树结构

上文给出了单条区域轮廓线的跟踪与顶点链码抽取算法,要跟踪图像所有的区域边界,还要解决发现新的区域边界、避免边界的漏跟踪、重复跟踪和生成边界的围线树结构的问题。

(1)发现新的区域边界。按从上到下,从左到右的顺序遍历像素顶点矩阵,当遇到值为1,3或6的顶点时,那么该点就是新边界的开始点,就可以开始追踪该边界,抽取该边界的顶点链码。

(2)避免边界的漏跟踪、重复跟踪和破坏连通性问题。当跟踪了一条边界后,通过更改像素顶点矩阵在该点的值,解决边界的漏跟踪、重复跟踪和破坏连通性的问题。在像素顶点矩阵中,当经过的点的值为1,2或3时,该值作为顶点链码值被记录下来,然后把该点的值改为0或者改为边界的跟踪顺序值;当经过的点的值为6时,该点的顶点链码值作为3被记录下来,然后把该点的值改为3。这样跟踪过的边界就不会再一次当作新的边界被发现。

(3)定义边界的围线树结构。定义围线节点类CLayer ,成员变量m_sChaincode 为该围线的顶点链码序列,成员变量m_pParent 是个指向父节点指针,成员变量m_Layerlist 是个围线类指针数组,它保存了该围线所包含的所有子围线的围线类指针。

定义围线类如下:

Class CLayer {

int m_imgWidth, m_imgHeight; //图像的宽和高

int m_direction; //顶点链码的初始方向 int m_x; //顶点链码的起始点坐标的x 分量 int m_y; //顶点链码的起始点坐标的y 分量 CString m_sChaincode; //图像区域边界的顶点链码序列

CArraym_Layerlist; //该围线所包含的字围线的围线类指针数组 CLayer*m_pParent; //包含该围线的父围线类指针 };

4 实验结果

实验表明,利用基于像素顶点矩阵的边界追踪算法能正

确地跟踪图像区域边界,获得围线的树结构。图4为放大并显示网格的原始图像。图5为利用本文算法跟踪图所示的区域边界获得顶点链码及其链码树结构,其中,上箭头指向父围线,下箭头指向节点链码表示的边界所包含的子围线。

(下转第255页)

3.3 用户空间电源管理服务守护进程的建立

高级电源管理的用户空间守护进程为apmd。当用户空间执行命令apm –s时,对应内核空间调用函数apm_suspend,进而调用pm_suspend进入内核电源管理子系统。通过apmd 可以显示系统的电池电量及充电状态,并将电池状态记录到系统日志,当电量状态变化时采取相应动作。

本文实现了一个用户空间电源管理服务守护进程,当系统空闲(没有外部事件触发或正在运行程序)时间超过由固定超时策略预知的时间间隔后执行命令apm –s使系统进入休眠,然后重新设置定时器。

4 实验结果与分析

实验硬件平台采用YLP2440开发板,S3C2440处理器,64 MB sdram, 128 MB nandflash, 3.5寸sharp 240x320LCD液晶屏,音频接口采用IIS接口芯片uda1341,采用DM9000AEP 的10/100 Mb/s网口,两通道串口,USB1.1host, device接口等。本文采取如下实验方案,将YLP2440开发板与稳压电源相连,以12 V直流电压作为系统输入。YLP2440开发板内含有LM2596电源转换电压调整芯片。该芯片在5 V输出时具有80%的转换效率,同时可以读出系统工作电流。分别在S3C2440处理器工作频率为405 MHz和271 MHz情况下测量该系统在空闲状态和休眠状态下的耗电量,以电流表示,原始数据如表1所示。

表1 系统空闲状态功耗与休眠状态功耗测量

S3C2440 工作频率/MHz

空闲状态

耗电量/mA

休眠状态

耗电量/mA

电源管理

节能百分比/(%)

405 300 35 11.67

271 270 35 12.96 实验数据表明,当处理器工作频率降低后,系统功耗降低。系统进入休眠状态以后功耗已不受处理器频率影响,这与前文分析的在休眠状态下处理器将切断内部供电,仅保留唤醒逻辑(wake-up logic)模块的结论一致。实验数据表明,当S3C2440处理器工作在典型的工作频率(405 MHz和270 MHz)时,系统的电源管理功能可以使休眠后的功耗减小到系统空闲状态电量的11.67%和12.96%,从而大大降低了嵌入式系统的功耗。

5 结束语

本文研究了嵌入式Linux系统中的高级电源管理机制,设计并实现了一套完整的电源管理软件系统。实验结果表明,该电源管理系统可以有效地减少系统功耗,从而延长便携式手持设备的电池使用时间。电源管理是一项硬件与软件相结合的系统工程,在今后的研究中将着重实现嵌入式系统的动态电源管理功能,以进一步降低嵌入式系统的功耗。

参考文献

[1] Daisuke M, Yutaka I. Process Oriented Power Management[C]//Proc.

of the 2nd International Symposium on Industrial Embedded Systems. Lisbon, Portugal: [s. n.], 2007.

[2] 吴慧良, 史烈, 陈小平, 等. Linux下休眠功能的软件实现[J].

计算机工程, 2002, 28(4): 235-236.

[3] 吴快快, 都思丹. 基于Linux的便携嵌入式设备电源管理解决方

案[J]. 微处理机, 2005, 26(5): 66-68.

[4] 阳富民, 梁晶, 张杰. 嵌入式Linux电源管理技术的研究实

现[J]. 计算机工程与科学, 2004, 26(12): 91-93.

[5] 周建政, 吕柏权. 基于Linux嵌入式的电源管理的研究

[J]. 仪表

技术, 2008, 1(1): 59-61.

[6] Corbet J, Kroah-Hartman G, Rubini A. Linux Device Driver[M].

[S. l.]: O'Reilly & Associates, Inc., 2005.

[7] Love R. Linux Kernel Development[M]. [S. l.]: Sams Publishing,

2005.

编辑顾姣健

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (上接第232页)

图4 原始图像

图5 边界顶点链码表示及其树结构

5 结束语

对比现有的边界追踪算法,本文算法提供的边界追踪算

法具备以下特点:(1)算法适用任意形状的图像区域;(2)算法

给出了区域边界的顶点链码表示;(3)算法是线性的;(4)算法

给出了图像区域边界的围线树结构。实验结果表明,该算法

能正确跟踪复杂的图像,且具有容易实现、效率较高等优点。

通过围线树结构,还可以得到区域边界的其他链码表示及其

树结构,具有一定实用价值。

参考文献

[1] 陆宗琪. 图像处理领域轮廓跟踪及应用[J]. 中国计算机用户,

1994, 10(5): 49-54.

[2] Ren Mingwu, Yang Jinyu, Sun Han. Tracing Boundary Contours in a

Binary Image[J]. Image and Vision Computing, 2002, 20(2):

125-131.

[3] Rosenfeld A. Adjacency in Digital Picture[J]. Information and

Control, 1974, 26(1): 24-33.

[4] 章毓晋. 图像分割[M]. 北京: 科学出版社, 2001.

[5] Bribiesca E. A New Chain Code[J]. Pattern Recognition, 1999, 32(2):

235-251.

编辑陈文

—255—

8-邻域边界跟踪算法

利用点的八邻域信息,选择下一个点作为边界点,这个算法需要选择一个开始点,可以选择图像上是目标点,在最上,最左的点。然后查看它的八邻域的点,从右下方45°的位置开始寻找,如果是目标点,将沿顺时针90°作为下一次寻找的方向,如果不是,则逆时针45°继续寻找,一旦找到重复上面的过程。 void VessDibTrack(HDIB hdib,vector& pt) //八邻域 { unsigned char *lpSrc; LPSTR lpDIB = (LPSTR) ::GlobalLock((HGLOBAL)hdib); int cxDIB = (int) ::DIBWidth(lpDIB); // Size of DIB - x int cyDIB = (int) ::DIBHeight(lpDIB); // Size of DIB - y LPSTR lpDIBBits=::FindDIBBits (lpDIB); long lLineBytes = WIDTHBYTES(cxDIB * 8); // 计算图像每行的字节数 //寻找开始点,最右,最下 //先行,后列 int i,j; POINT startPt,currPt; for (i = 0;i

图像定位及跟踪技术大解析

图像定位及跟踪技术大解析 在科学技术日新月异的今天,人们对机器设备的智能性、自主性要求也越来越高,希望其完全替代人的角色,把人们从繁重、危险的工作任务中解脱出来,而能否像人一样具有感知周围环境的能力已成为设备实现智能化自主化的关键。 广义的“图像跟踪”技术,是指通过某种方式(如图像识别、红外、超声波等)将摄像头中拍摄到的物体进行定位,并指挥摄像头对该物体进行跟踪,让该物体一直被保持在摄像头视野范围内。狭义的“图像跟踪”技术就是我们日常所常谈到的,通过“图像识别”的方式来进行跟踪和拍摄。 因为红外、超声波等方式,都受环境的影响,而且要专门的识别辅助设备,在实际应用中已经逐步被“图像识别”技术所替代。“图像识别”是直接利用了摄像头拍摄到的图像,进行NCAST图像差分及聚类运算,识别到目标物体的位置,并指挥摄像头对该物体进行跟踪。 图像跟踪系统采用特有的NCAST目标外形特征检测方法,被跟踪者无需任何辅助设备,只要进入跟踪区域,系统便可对目标进行锁定跟踪,使摄像机画面以锁定的目标为中心,并控制摄像机进行相应策略的缩放。系统支持多种自定义策略,支持多级特写模式,适应性强,不受强光、声音、电磁等环境影响。 目标物体的边缘检测 物体的形状特征在大多数情况下变化不多,基于目标形状轮廓的跟踪方法与基于区域的匹配方法相比,可以更精确的分割目标。 边缘是运动目标的最基本特征,表现在图像中就是指目标周围图像灰度有阶跃变化或屋顶变化的那些像素集合,它是图像中局部亮度变化最显著的部分。 边缘检测就是采用某种算法来定位灰度不连续变化的位置,从而图像中目标与背景的交界线。图像的灰度变化可以用灰度梯度来表示。

关于mean shift视频目标跟踪算法的设计与实现-----中期报告

河北工业大学城市学院本科毕业设计(论文)中期报告 毕业设计(论文)题目:基于Mean-Shift的视频目标跟踪算法的设计与实现 专业(方向):网络工程 学生信息:学号:088302 姓名:坎启娇班级:网络C081班 指导教师信息:教师号:02019 姓名:侯向丹职称:副教授 报告提交日期:2012年4月30号 1.前言 1.1选题的背景 运动目标的检测与跟踪是应用视觉领域[1]的一个重要的课题。目标跟踪涉及到图像处理、模式识别、人工智能以及自适应控制多领域问题的综合解决,其中对于复杂背景(或环境)下的图像处理一直是视觉信息处理和理解的难点。在实际应用中,复杂的现场环境以及跟踪应用的实时性要求,对算法都提出了更高的要求。因此,研究复杂背景下运动目标的检测和跟踪的课题有重要意义。本文的研究目的是建立一个视频图像监控系统,根据目标的运动方向,系统将目标锁定在视野中。目标跟踪是在一段视频序列中寻找与指定目标最相似的部分,是计算机视觉的一个重要研究内容。它在视频监控、人机界面、增强现实、基于目标的视频压缩等众多领域中有着广泛的应用。 1.2运动目标跟踪算法 1.2.1常见的运动目标跟踪算法 目前视频目标跟踪方法[2]大体上可以分为基于区域匹配的目标跟踪、基于轮廓的匹配跟踪、基于特征的匹配跟踪、基于模型的跟踪,以及基于运动特性的跟踪。下面详细介绍这五类算法。 (1)基于区域匹配跟踪 区域匹配跟踪的基本思想是:预先通过人为的方法或图像分割的方法得到包含目标的模板,然后在后续的视频序列中运用相关匹配准则进行目标的匹配跟踪。决定区域匹配跟踪效果好坏最主要的因素就是匹配度量和搜索算法的选取。最常用的相关准则是平方和准则法(SSD),颜色法、形状法等。 优点:提取了较完整的目标模板,因此相对其它跟踪算法能得到更多的图像信息,当目标未被遮挡时跟踪精度高且稳定,因而广泛应用于小目标的跟踪或对比度比较差的目标跟

数字图像边缘检测的研究与实现

任务书

主要分析几种应用于数字图像处理中的边缘检测算子,根据它们在实践中的应用结果进行研究,主要包括:Robert 边缘算子、Prewitt 边缘算子、Sobel 边缘算子、Kirsch 边缘算子以及Laplacian 算子等对图像及噪声图像的边缘检测,根据实验处理结果讨论了几种检测方法的优劣. 关键词:数字图像处理;边缘检测;算子

图像的边缘是图像的重要特征之一, 数字图像的边缘检测是图像分割、目标区域识别、区域形状提取等图像分析领域十分重要的基础, 其目的是精确定位边缘, 同时较好地抑制噪声, 因此边缘检测是机器视觉系统中必不可少的重要环节。然而, 由于实际图像中的边缘是多种边缘类型的组合, 再加上外界环境噪声的干扰, 边缘检测又是数字图像处理中的一个难题。

目录 第一章边缘的概念 (3) 第二章边缘检测 (4) 第三章边缘检测算子的应用 (8) 第四章边缘检测方法性能比较 (12) 参考文献料 (15)

第1章:边缘检测 1.1 边缘的介绍 图像边缘是图像最基本的特征,边缘在图像分析中起着重要的作用。所谓边缘是指图像局部特性的不连续性。灰度或结构等信息的突变处称为边缘,例如:灰度级的突变,颜色的突变,纹理结构的突变等。边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。 边缘(edge)是指图像局部强度变化最显著的部分.边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础.图像分析和理解的第一步常常是边缘检测(edge detection).由于边缘检测十分重要,因此成为机器视觉研究领域最活跃的课题之一.本章主要讨论边缘检测和定位的基本概念,并使用几种常用的边缘检测器来说明边缘检测的基本问题. 在讨论边缘算子之前,首先给出一些术语的定义: 边缘点:图像中具有坐标],[j i 且处在强度显著变化的位置上的点. 边缘段:对应于边缘点坐标],[j i 及其方位 ,边缘的方位可能是梯度角. 边缘检测器:从图像中抽取边缘(边缘点和边缘段)集合的算法. 轮廓:边缘列表,或是一条表示边缘列表的拟合曲线. 边缘连接:从无序边缘表形成有序边缘表的过程.习惯上边缘的表示采用顺时针方向序. 边缘跟踪:一个用来确定轮廊的图像(指滤波后的图像)搜索过程. 边缘点的坐标可以是边缘位置像素点的行、列整数标号,也可以在子像素分辨率水平上表示.边缘坐标可以在原始图像坐标系上表示,但大多数情况下是在边缘检测滤波器的输出图像的坐标系上表示,因为滤波过程可能导致图像坐标平移或缩放.边缘段可以用像素点尺寸大小的小线段定义,或用具有方位属性的一个点定义.请注意,在实际中,边缘点和边缘段都被称为边缘. 边缘连接和边缘跟踪之间的区别在于:边缘连接是把边缘检测器产生的无序边缘集作为输入,输出一个有序边缘集;边缘跟踪则是将一幅图像作为输入,输出一个有序边缘集.另外,边缘检测使用局部信息来决定边缘,而边缘跟踪使用整个图像信息来决定一个像素点是不是边缘. 1.2 边缘检测算子 边缘检测是图像特征提取的重要技术之一, 边缘常常意味着一个区域的终结和另一个区域的开始. 图像的边缘包含了物体形状的重要信息,它不仅在分析图像时大幅度地减少了要处理的信息量,而且还保护了目标的边界结构. 因此,边缘检测可以看做是处理许多复杂问题的关键. 边缘检测的实质是采用某种算法来提取出图像中对对象与背景间的交界线。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此可以用局部图像微分技术来获取边缘检测算子。经典的 边缘检测方法是对原始图像中的像素的某个邻域来构造边缘检测算子。以下是对几种经典的边缘检测算子进行理论分析,并对各自的性能特点做出比较和评价。

毕设-基于DSP的运动目标图像跟踪算法研究与实现-正文-下

第4章运动目标图像跟踪系统的硬件知识4.1 运动目标图像跟踪系统原理 这一章的内容主要以原理框图的形式展现 图4-1 图像跟踪器原理框图 图4-2 图像识别与跟踪子系统原理框图

图4-3 图像信息综合教学实验系统原理框图 4.2 FPGA图像预处理子系统 用户现场可编程门阵列器件FPGA(FildePrgo~bale一Gate~Array),顾名思义,是一种可由用户根据所设计的数字系统的要求,在现场由自己配置,定义的高密度专用数字集成电路。 FPGA有效的将LSIV/Lsl的门阵列技术的高逻辑密度和通用性与用户现场可编程的设计灵活,上市快捷的特性有效的结合了起来。它具有以下三个主要优点: (1)FPGA的用户现场可编程的特性大大缩短了设计实现的周期; (2)FPGA可以提供比PLD和EPLD器件足够大的有效逻辑容量密度,大大提高了系统设计的工艺可实现性和产品的可靠性。 (3)FPGA可以反复编程,反复使用,可以在开发系统中直接进行系统仿真,降低了成本。 本系统采用的是XLINIX公司Virtxe-E系列FPGA,型号为XCV400E。XCV400E为57万门规模,具有153kb的内存可配置分布存储器和16kb的同步数据块存储器,可存储大量的中间数据、图像行数据和图像卷积数据。

4.3 双口RAM实现数据的传输 双口RAM读写操作灵活方便,具有两个端口进行独立的异步操作的能力, 并且其接口电路的设计也比较简单。双端口RAM内一般有一个总线强占优先 级比较器,当两边的CPU访问同一存储单元时,较先送出的址的CPU具有优 先访问权,而另一个CPU的的址和读写信号将被屏蔽掉。位于FPGA与DSP 之间的双口RAM的数据传输过程如图4-4所示。 图4-4 双口RAM数据传输 该系统使用的CY7C057V是低功耗CMOS32Kx36的双口静态RAMs。器 件中包含了多种仲裁机制来处理多处理器存取相同数据块的情况。两个端口提 供了独立的通行证,在存储器的任意位置读写的异步存取。该器件既可以单独 用来作为36-bit双口静态RAMs,也可以多个器件相结合生成72-bit或者更宽 的主/副双口静态RAM。 CY7C057V的组成单元包括:32Kx36bit的双口RAM单元、I/0和的址线、CE/CE1、/OE、R/ W)。这些引脚允许对存储器内部的任意位以及控制信号(0 置进行读写存取。每个端口提供了一个BUSY对同一位置空间进行写/读。两个 中断(INT)引脚用来控制双口RAM与EMFI接口图到端的通信,它允许端口 间或系统间通过信箱的方式进行通信。两个旗语控制引脚用来指定享有的资 源。旗语逻辑由8个共享的锁存器组成。任何时候只有一边能够控制锁存器。 旗语的控制意味着共享资源在被使用。M/S引脚确定器件是主模式(BUSY引脚 CE/CE1,控制的自为输出)还是从模式(BUSY引脚为输入)。器件还提供了由0 动电源关闭特征。每个端口还提供了它自己的输出使能控制(OE),它使得数据 能够被从器件中读出。 将双口RAM置于FAPG和DSP之间作为数据缓存器,如图4-4所示的一

matlab练习程序(二值图像内外边界跟踪)

matlab练习程序(二值图像内外边界跟踪) 目标内边界的像素全都在目标里面,目标外边界的像素全都不在目标上,是包围着目标的。 二值图像内外边界的计算都是有两种方法的,所以一共是4种算法,不过实际用到跟踪的只有一个而已。 首先是内边界跟踪: 第一种方法不是跟踪方法。步骤是先对原图像腐蚀,然后用原图像减去腐蚀后的图像就得到边界了。 第二种方法是跟踪方法。步骤如下: 1.遍历图像。 2.标记第一个遇见像素块的前景像素(i,j)。 3.对这个像素周围八邻域逆时针搜索,如果搜索到周围有前景像素,那么更新坐标(i,j)为(i',j'),并标记。 4.不断执行第3步直到再次遇见此像素块第一次标记的像素。 5.继续执行第1步。 然后是外边界跟踪: 第一种方法和求内边界第一种方法类似。先对原图像进行膨胀,然后用膨胀后的图像减去原图像即可。 第二种也不算跟踪方法,只是标记算法而已。就是将图像中前景像素周围的非前景像素标记一下就行了。 效果如下: 原图:

内边界: 外边界: matlab程序如下: 内边界: 复制代码 clear all; close all; clc; img=imread('rice.png'); img=img>128; imshow(img); [m n]=size(img); imgn=zeros(m,n); %边界标记图像 ed=[-1 -1;0 -1;1 -1;1 0;1 1;0 1;-1 1;-1 0]; %从左上角像素,逆时针搜索 for i=2:m-1 for j=2:n-1 if img(i,j)==1 && imgn(i,j)==0 %当前是没标记的白色像素 if sum(sum(img(i-1:i+1,j-1:j+1)))~=9 %块内部的白像素不标记 ii=i; %像素块内部搜寻使用的坐标 jj=j; imgn(i,j)=2; %本像素块第一个标记的边界,第一个边界像素为2 while imgn(ii,jj)~=2 %是否沿着像素块搜寻一圈了。 for k=1:8 %逆时针八邻域搜索 tmpi=ii+ed(k,1); %八邻域临时坐标 tmpj=jj+ed(k,2); if img(tmpi,tmpj)==1 && imgn(tmpi,tmpj)~=2 %搜索到新边界,并且没有搜索一圈 ii=tmpi; %更新内部搜寻坐标,继续搜索 jj=tmpj; imgn(ii,jj)=1; %边界标记图像该像素标记,普通边界为1 break; end

基于特征点的运动目标跟踪算法研究

龙源期刊网 https://www.doczj.com/doc/f95203533.html, 基于特征点的运动目标跟踪算法研究 作者:武婷侯红娜 来源:《科技风》2017年第04期 摘要:由于目标的姿态和大小不断发生变化,本文通过对SIFT特征点的跟踪实现对目标可靠、稳定跟踪,即采用SIFT算法与光流算法相结合的跟踪算法。由于SIFT特征点存在分布太密集的现象,增加了后续跟踪算法的耗时性。针对以上这类问题,本文加入距离约束机制对SIFT算法进行改进。光流只适合小运动,本文采用基于图像金字塔模型的光流跟踪以适应大 尺度运动。利用基于多尺度分层的金字塔结构,实现小窗口捕获大运动。通过实验证明,本文所采用的算法相对于传统光流具有更好的鲁棒性和稳定性,能得到更加准确的目标位置。 关键词:SIFT特征点;光流算法;图像金字塔;目标跟踪 目标跟踪问题是机器视觉领域中的一个热点和难点,由于技术的飞速发展,已经被广泛用于道路交通监控、人机交互、制导与导航等诸多领域[ 1 ]。运动目标有有很多的特征能进行跟踪,常见的主要有特征点、轮廓、边缘、形状、颜色等。最容易且能够稳定跟踪的是特征点[ 2 ]。国内外研究者针对特征点的跟踪提出了许多不同的算法,主要的有两种算法:一是基于滤波器预测的方法;二是基于光流的方法。KLT 跟踪算法是由Kanade-Lucas两人提出[ 3 ],后来由Tomasi和 Kanade改进[ 4 ]。KLT算法首先运用 KLT 算子获取特征点,然后采用最优估 计的 KLT 匹配算法实现特征点之间的匹配[ 5 ],近些年来得到了广泛应用。Ajmal S. Mian 等 人采用KLT算法实现了对结构单一、运动迅速的军用飞机的跟踪[ 6 ];Abdat等人利用KLT算法实现对人脸特征点的跟踪[ 7 ];邓义等[ 8 ]人在光流算法中加入滤波,该算法提高了特征点跟踪的精度。但是光流法的前提条件之一是图像的连贯性,所以L-K只适用在小尺度运动的目标跟踪,相对于运动尺度、姿态发生比较大变化的跟踪,容易出现特征点丢失的现象导致跟踪失败。本文采用一种图像金字塔的L-K 光流特征点跟踪方法。 由于SIFT是一种局部特征,同时具备尺度和旋转不变性等的优点。然而光流场代表的是一种全局特征,表示的是像素点强度的变化。SIFT算法提取的特征点可以满足光流方程的约 束条件[ 9 ],因此,本文把SIFT特征点和L-K算法结合起来实现对目标的准确跟踪。由于SIFT特征点存在分布过于密集的不足,本文将对SIFT特征点检测加入距离限制进行改进。 1 SIFT特征点提取与改进 1.1 SIFT特征点检测步骤 1.2 改进的SIFT算法 SIFT算法检测到的特征点具有很好地稳定性和抗噪能力,但检测到的特征点过于密集, 在后续的跟踪过程中,加大了计算复杂度,影响算法的实时性。针对上述问题,在SIFT算法

图像边界跟踪算法程序

Matlab程序.光栅扫描跟踪程序 I=imread(' circles.png '); [m,n]=size(I); %计算图像的大小 imshow(I); R=I(1,1); %图像第一个像素点的值 I0=zeros(m+2,n+2)+R; %图像周围增加一个与原图像第一个像素值相同的像素I0(2:(m+1),2:(n+1))=I; x0=0;y0=0; fsp=0; %是否找到起始点 for i=1:m for j=1:n if (I0(i,j)~=R) x0=i; %记录起始点的纵坐标i y0=j; %记录起始点的横坐标j fsp=1; break; end end if fsp==1 break; end end row=x0; col=y0; A=[]; %存储边界点坐标的矩阵 B=zeros(m,n); %边界跟踪的图像矩阵 ended=0;direction=4; %由起始点的左边开始查找 while(ended==0) found_next=0; b=[row,col]; A=[A;b]; B(row,col)=255; while(found_next==0) switch mod(direction,8) case 0 if (I0(row, col+1)~=R) row=row; %记录当前坐标 col=col+1; direction=5; %下一点由方向5开始查找 found_next=1; %找到边界点 end; case 1 if (I0(row-1, col+1)~=R) row=row-1; %记录当前坐标

col=col+1; direction=6; %下一点由方向6开始查找found_next=1; %找到边界点 end; case 2 if (I0(row-1, col)~=R) row=row-1; %记录当前坐标 col=col; direction=7; %下一点由方向7开始查找found_next=1; %找到边界点 end; case 3 if (I0(row-1, col-1)~=R) row=row-1; %记录当前坐标 col=col-1; direction=0; %下一点由方向0开始查找found_next=1; %找到边界点 end; case 4 if (I0(row, col-1)~=R) row=row; %记录当前坐标 col=col-1; direction=1; %下一点由方向1开始查找found_next=1; %找到边界点 end; case 5 if (I0(row+1, col-1)~=R) row=row+1; %记录当前坐标 col=col-1; direction=2; %下一点由方向2开始查找found_next=1; %找到边界点 end; case 6 if (I0(row+1, col)~=R) row=row+1; %记录当前坐标 col=col; direction=3; %下一点由方向3开始查找found_next=1; %找到边界点 end; case 7 if (I0(row+1, col+1)~=R) row=row+1; %记录当前坐标 col=col+1; direction=4; %下一点由方向4开始查找

常见图像边缘检测算法检测

不同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像。需要说明的是:边缘和物体间的边界并不等同,边缘指的是图像中像素的值有突变的地方,而物体间的边界指的是现实场景中的存在于物体之间的边界。有可能有边缘的地方并非边界,也有可能边界的地方并无边缘,因为现实世界中的物体是三维的,而图像只具有二维信息,从三维到二维的投影成像不可避免的会丢失一部分信息;另外,成像过程中的光照和噪声也是不可避免的重要因素。正是因为这些原因,基于边缘的图像分割仍然是当前图像研究中的世界级难题,目前研究者正在试图在边缘提取中加入高层的语义信息。 在实际的图像分割中,往往只用到一阶和二阶导数,虽然,原理上,可以用更高阶的导数,但是,因为噪声的影响,在纯粹二阶的导数操作中就会出现对噪声的敏感现象,三阶以上的导数信息往往失去了应用价值。二阶导数还可以说明灰度突变的类型。在有些情况下,如灰度变化均匀的图像,只利用一阶导数可能找不到边界,此时二阶导数就能提供很有用的信息。二阶导数对噪声也比较敏感,解决的方法是先对图像进行平滑滤波,消除部分噪声,再进行边缘检测。不过,利用二阶导数信息的算法是基于过零检测的,因此得到的边缘点数比较少,有利于后继的处理和识别工作。 各种算子的存在就是对这种导数分割原理进行的实例化计算,是为了在计算过程中直接使用的一种计算单位 1.Sobel算子 其主要用于边缘检测,在技术上它是以离散型的差分算子,用来运算图像亮度函数的梯度的近似值, Sobel算子是典型的基于一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪声具有平滑作用,能很好的消除噪声的影响。Sobel算子对于象素的位置的影响做了加权,与Prewitt算子、Roberts算子相比因此效果更好。 Sobel算子包含两组3x3的矩阵,分别为横向及纵向模板,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。实际使用中,常用如下两个模板来检测图像边缘。

实验6,运动目标跟踪算法与实现

对图像进行阈值分析,并进行二值化处理 确定目标在像素平面上 结束 通过以形心位置为中 含目标的矩形框一. 实验名称:运动目标跟踪算法设计与实现 二. 实验目的 1. 熟悉各种图像预处理方法,如直方图处理、图像去噪声、图像增强与复原、图像变换等,了解这些方法在图像分析与识别、目标检测及跟踪等各种应用中所起的作用。 2. 熟悉基本的图像分割原理。 3. 能够利用MATLAB 工具完整实现从图像预处理、图像分割、特征提取与分析及各种实际应用的完整流程。 4. 该实验为一个综合设计及应用的实验,目的是要求学生综合利用学到的光电图像处理知识,解决图像识别、目标检测及目标定位与跟踪问题。进一步深入理解光电图像处理的重要性,提高学生利用光电图像处理基本理论、方法等解决实际问题及提高分析问题的能力。 三. 实验原理及步骤 1. 序列图像中的运动目标形心跟踪 (1) 序列图像的读取与显示 本实验提供了200 帧的图像序列,为BMP 文件,文件名后缀的序号按场景出现的先后顺序排列。 (2) 图像分割 首先,对图像进行必要的阈值分析。根据实际情况自行确定合适的阈值后,再对图像进行二值化处理。 (3) 形心计算 在分割的单帧图像上,计算图像中目标区的形心坐标(Xc ,Yc ),确定目标在像素平面上的位置坐标。 (4) 形心跟踪 ①MATLAB 确定跟踪波门:即以形心位置为中心,在图像中包含目标的区域添加一个合适的矩形框(如取32×16 pixels ,32×32 pixels ,64×32 pixels 等), ②实时跟踪:循环读取序列图像,对每帧图像均计算目标区的形心坐标,连

续绘制包含目标区域的波门(即矩形框)。实现对200 帧序列图像中运动目标的实时稳定跟踪。 2. 序列图像中的运动目标相关跟踪 实验原理及步骤如下: (1) 序列图像的读取与显示 同实验内容1,序列图像数据另选。 (2) 参考模板制作 在起始帧图像中,手动选取包含目标的矩形区域(根据目标尺寸,确定模板尺寸)。另(缓)存为预制图像模板数据。 (3) 模板匹配 ①确定搜索区域大小:在当前帧目标区域扩大适当范围作为下一帧图像的搜索区域。 ②确定匹配准则:MSE 、MAD 、NCC 或MPC 等(选其一种),进行搜索区域的匹配度(相似度)计算,画出搜索区域内的相似度3D 曲面图(画连续2 帧之间的搜索过程的结果即可),确定最佳的匹配位置。视频数据若为彩色图像,可先进行灰度化处理,然后用像素灰度值进行计算。 ③实时跟踪:重复步骤①-②,实现序列图像中的目标的连续稳定跟踪。 四. 实验结果及分析 1. 序列图像中的运动目标形心跟踪 通过对形心的定位,可以实现更好的目标跟踪 制作参考模版,确定搜索区域大小确定匹配准则和 最佳的匹配位置结束

基于MATLAB的图像处理及跟踪算法

摘要 摘要 视频图像处理技术广泛用于工业、安全、医疗、管理等领域。运动目标的检测和跟踪是图像处理技术在视频序列图像处理方面的一个重要应用,在航天、交通、机器人视觉、视频监控、公共场所客流数据监测等场合发挥着重要作用。 本文介绍了一种基于MATLAB的简易的从视频播放的帧图像中找出目标图像,并进行视频跟踪的实现方法。通过对图像进行阈值处理(图像分割),再对分割后的图像求取形心,以对目标图像进行定位,并最后找到各幅帧图像的目标位置的方法,从而实现对100帧视频图像的实时跟踪。 关键词:目标检测;阈值处理;视频序列目标跟踪;形心估计

ABSTRACT ABSTRACT Video image processing technology is widely used in industrial, security, health care, management and other fields. Motion target detection and tracking is image processing technology in video sequence is an important application in image processing, in the aerospace, transportation, robot vision, video surveillance, public traffic data monitoring plays an important role. This paper introduces a simple MATLAB to find the target image from the video image frame based, and realization method of video tracking.Through the threshold of image processing (image segmentation), then the after image segmentation to obtain the centroid, to locate the target image, and finally found the method of each frame image of the target position, so as to realize the real-time tracking of the 100 frame of video images. Key words: target detection; threshold; video object tracking; centroid estimation

(完整版)视频目标检测与跟踪算法综述

视频目标检测与跟踪算法综述 1、引言 运动目标的检测与跟踪是机器视觉领域的核心课题之一,目前被广泛应用在 视频编码、智能交通、监控、图像检测等众多领域中。本文针对视频监控图像的运动目标检测与跟踪方法,分析了近些年来国内外的研究工作及最新进展。 2、视频监控图像的运动目标检测方法 运动目标检测的目的是把运动目标从背景图像中分割出来。运动目标的有效分割对于目标分类、跟踪和行为理解等后期处理非常重要。目前运动目标检测算法的难点主要体现在背景的复杂性和目标的复杂性两方面。背景的复杂性主要体现在背景中一些噪声对目标的干扰,目标的复杂性主要体现在目标的运动性、突变性以及所提取目标的非单一性等等。所有这些特点使得运动目标的检测成为一项相当困难的事情。目前常用的运动目标检测算法主要有光流法、帧差法、背景相减法,其中背景减除法是目前最常用的方法。 2.1 帧差法 帧差法主要是利用视频序列中连续两帧间的变化来检测静态场景下的运动目标,假设(,)k f x y 和(1)(,)k f x y +分别为图像序列中的第k 帧和第k+1帧中象素点(x ,y)的象素值,则这两帧图像的差值图像就如公式2-1 所示: 1(1)(,)(,)k k k Diff f x y f x y ++=- (2-1) 2-1式中差值不为0的图像区域代表了由运动目标的运动所经过的区域(背景象素值不变),又因为相邻视频帧间时间间隔很小,目标位置变化也很小,所以运动目标的运动所经过的区域也就代表了当前帧中运动目标所在的区域。利用此原理便可以提取出目标。下图给出了帧差法的基本流程:1、首先利用2-1 式得到第k 帧和第k+1帧的差值图像1k Diff +;2、对所得到的差值图像1k Diff +二值化(如式子2-2 示)得到Qk+1;3、为消除微小噪声的干扰,使得到的运动目标更准确,对1k Q +进行必要的滤波和去噪处理,后处理结果为1k M +。 111255,,(,)0,,(,)k k k if Diff x y T Q if Diff x y T +++>?=?≤? (T 为阈值) (2-2)

8-邻域边界跟踪算法

C++ 利用点的八邻域信息,选择下一个点作为边界点,这个算法需要选择一个开始点,可以选择图像上是目标点,在最上,最左的点。然后查看它的八邻域的点,从右下方45°的位置开始寻找,如果是目标点,将沿顺时针90°作为下一次寻找的方向,如果不是,则逆时针45°继续寻找,一旦找到重复上面的过程。 void VessDibTrack(HDIB hdib,vector& pt) //八邻域 { unsigned char *lpSrc; LPSTR lpDIB = (LPSTR) ::GlobalLock((HGLOBAL)hdib); int cxDIB = (int) ::DIBWidth(lpDIB); // Size of DIB - x int cyDIB = (int) ::DIBHeight(lpDIB); // Size of DIB - y LPSTR lpDIBBits=::FindDIBBits (lpDIB); long lLineBytes = WIDTHBYTES(cxDIB * 8); //计算图像每行的字节数 //寻找开始点,最右,最下 //先行,后列 int i,j; POINT startPt,currPt; for (i = 0;i

startPt.x = i; startPt.y = j; //停止条件 i = cyDIB; j = cxDIB; } } } //设置方向数组 //intdirection[8][2]={{-1,-1},{0,-1},{1,-1},{1,0},{1,1},{0,1},{-1,1},{-1,0}};int direction[8][2] = {{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0}};int startDirect ; BOOL FindStartPoint = FALSE; BOOL FindPoint = FALSE; //开始跟踪 currPt.x = startPt.x; currPt.y = startPt.y; POINT NextPt ; int NextPtValue; startDirect = 0; int cnt= 0; while(!FindStartPoint&&cnt<100000)

目标跟踪算法综述

。 目标跟踪算法综述 大连理工大学卢湖川一、引言 目标跟踪是计算机视觉领域的一个重 要问题,在运动分析、视频压缩、行为识 别、视频监控、智能交通和机器人导航等 很多研究方向上都有着广泛的应用。目标 跟踪的主要任务是给定目标物体在第一帧 视频图像中的位置,通过外观模型和运动 模型估计目标在接下来的视频图像中的状 态。如图1所示。目标跟踪主要可以分为5 部分,分别是运动模型、特征提取、外观 模型、目标定位和模型更新。运动模型可 以依据上一帧目标的位置来预测在当前帧 目标可能出现的区域,现在大部分算法采用的是粒子滤波或相关滤波的方法来建模目标运动。随后,提取粒子图像块特征,利用外观模型来验证运动模型预测的区域是被跟踪目标的可能性,进行目标定位。由于跟踪物体先验信息的缺乏,需要在跟踪过程中实时进行模型更新,使得跟踪器能够适应目标外观和环境的变化。尽管在线目标跟踪的研究在过去几十年里有很大进展,但是由被跟踪目标外观及周围环境变化带来的困难使得设计一个鲁棒的在线跟踪算法仍然是一个富有挑战性的课题。本文将对最近几年本领域相关算法进行综述。 二、目标跟踪研究现状 1. 基于相关滤波的目标跟踪算法 在相关滤波目标跟踪算法出现之前,大部分目标跟踪算法采用粒子滤波框架来进行目标跟踪,粒子数量往往成为限制算法速度的一个重要原因。相关滤波提出了 一种新颖的循环采样方法,并利用循环样 本构建循环矩阵。利用循环矩阵时域频域 转换的特殊性质,将运算转换到频域内进 行计算,大大加快的分类器的训练。同时, 在目标检测阶段,分类器可以同时得到所 有循环样本得分组成的响应图像,根据最 大值位置进行目标定位。相关滤波用于目 标跟踪最早是在MOSSE算法[1]中提出 的。发展至今,很多基于相关滤波的改进 工作在目标跟踪领域已经取得很多可喜的 成果。 1.1. 特征部分改进 MOSSE[1] 算法及在此基础上引入循 环矩阵快速计算的CSK[2]算法均采用简单 灰度特征,这种特征很容易受到外界环境 的干扰,导致跟踪不准确。为了提升算法 性能,CN算法[3]对特征部分进行了优 化,提出CN(Color Name)空间,该空 间通道数为11(包括黑、蓝、棕、灰、绿、 橙、粉、紫、红、白和黄),颜色空间的引 入大大提升了算法的精度。 与此类似,KCF算法[4]采用方向梯度 直方图(HOG)特征与相关滤波算法结合, 同时提出一种将多通道特征融入相关滤波 的方法。这种特征对于可以提取物体的边 缘信息,对于光照和颜色变化等比较鲁棒。 方向梯度直方图(HOG)特征对于运 动模糊、光照变化及颜色变化等鲁棒性良 好,但对于形变的鲁棒性较差;颜色特征 对于形变鲁棒性较好,但对于光照变化不 够鲁棒。STAPLE算法[5]将两种特征进行 有效地结合,使用方向直方图特征得到相 关滤波的响应图,使用颜色直方图得到的 统计得分,两者融合得到最后的响应图像 并估计目标位置,提高了跟踪算法的准确 度,但也使得计算稍微复杂了一些。 图1 目标跟踪算法流程图

行人检测与目标跟踪算法研究

基于opencv中光流法的运动 行人目标跟踪与检测 一、课题研究背景及方法 行人检测具有极其广泛的应用:智能辅助驾驶,智能监控,行人分析以及智能机器人等领域。从2005年以来行人检测进入了一个快速的发展阶段,但是也存在很多问题还有待解决,个人觉得主要还是在性能和速度方面还不能达到一个权衡。 早期以静态图像处理中的分割、边缘提取、运动检测等方法为主。例如 (1)以Gavrila为代表的全局模板方法:基于轮廓的分层匹配算法,构造了将近2500个轮廓模板对行人进行匹配, 从而识别出行人。为了解决模板数量众多而引起的速度下降问题,采用了由粗到细的分层搜索策略以加快搜索速度。另外,匹配的时候通过计算模板与待检测窗口的距离变换来度量两者之间的相似性。 (2)以Broggi为代表的局部模板方法:利用不同大小的二值图像模板来对人头和肩部进行建模,通过将输入图像的边缘图像与该二值模板进行比较从而识别行人,该方法被用到意大利Parma大学开发的ARGO智能车中。 (3)以Lipton为代表的光流检测方法:计算运动区域内的残余光流; (4)以Heisele为代表的运动检测方法:提取行人腿部运动特征;

(5)以Wohler为代表的神经网络方法:构建一个自适应时间延迟神经网络来判断是否是人体的运动图片序列; 以上方法,存在速度慢、检测率低、误报率高的特点。 二、行人检测的研究现状 (1)基于背景建模的方法:分割出前景,提取其中的运动目标,然后进一步提取特征,分类判别;在存在下雨、下雪、刮风、树叶晃动、灯光忽明忽暗等场合,该方法的鲁棒性不高,抗干扰能力较差。且背景建模方法的模型过于复杂,对参数较为敏感。 (2)基于统计学习的方法:根据大量训练样本构建行人检测分类器。提取的特征一般有目标的灰度、边缘、纹理、形状、梯度直方图等信息,分类器包括神经网络、SVM,adaboost等。该方法存在以下难点:(a)行人的姿态、服饰各不相同; (b)提取的特征在特征空间中的分布不够紧凑; (c)分类器的性能受训练样本的影响较大; (d)离线训练时的负样本无法涵盖所有真实应用场景的情况; 尽管基于统计学习的行人检测方法存在着诸多的缺点,但依然有很多人将注意力集中于此。 行人检测国外研究情况: 法国研究人员Dalal在2005的CVPR发表的HOG+SVM的行人检测算法(Histograms of Oriented Gradients for Human Detection, Navneet Dalel,Bill Triggs, CVPR2005)。

目标跟踪算法设计与实现

实验六、目标跟踪算法设计与实现 一、实验目的 1、熟悉各种图像预处理方法,如直方图处理、图像去噪声、图像增强与复原、图像变换等,了解这些方法在图像分析与识别、目标检测及跟踪等各种应用中所起的作用。 2、熟悉基本的图像分割原理。 3、能够利用matlab工具完整实现从图像预处理、图像分割、特征提取与分析及各种实际应用的完整流程。 4、该实验为一个综合设计及应用的实验,目的是要求学生综合利用学到的光电图像处理知识,解决图像识别、目标检测及目标定位与跟踪问题。进一步深入理解光电图像处理的重要性,提高学生利用光电图像处理基本理论、方法等解决实际问题及提高分析问题的能力。 二、实验内容 (一)序列图像中的运动目标形心跟踪 1、序列图像的读取与显示 本实验提供了200帧的图像序列,为BMP文件,文件名后缀的序号按场景出现的先后顺序排列,序列图像读取及显示。 2、图像分割 首先对图像进行必要的阈值分析,确定合适的阈值后,再对图像进行二值化处理(图像分割)。 3、形心计算 在分割的单帧图像上,计算图像的形心坐标(Xc,Yc),确定目标在

像素平面上的位置。 4、形心跟踪 1)确定跟踪波门:即以形心位置为中心,在图像中包含目标的区域添加一个合适的矩形框 2)实时跟踪:循环读取序列图像,对每帧图像均计算形心,和进行包含目标区域的波门绘制。实现对200帧序列图像中运动目标的实时稳定跟踪,如图1所示(仅为示意图,并非原图)。 实验结果:通过合适的波门选择和阈值修正,基本实现了200帧的连续跟踪,跟踪的效果较好,如下图所示:

源码: clear;clc;close all path='C:\1\'; filecount=200; for i=1:filecount name=num2str(i); if i<=9 filename=strcat('0000000',name,'.bmp'); elseif i<=99 filename=strcat('000000',name,'.bmp'); elseif i<=199 filename=strcat('00000',name,'.bmp'); end I=imread([path filename]); I1=imcrop(I,[0,0,505,272]); I2=mat2gray(I1); figure(1),imshow(I2); level=graythresh(I2);%%求二值化的阈值[height,width]=size(I2); Level_fixed=level-0.05;%%阈值修正 bw=im2bw(I1,Level_fixed);%%二值化图像 figure(3),imshow(bw);%%显示二值化图像 [L,num]=bwlabel(bw,8);%%标注二进制图像中已连接的部分plot_x=zeros(1,1);%%用于记录质心位置的坐标 plot_y=zeros(1,1); sum_x=0;sum_y=0;area=0; [height,width]=size(bw);

基于图像边界跟踪的顶点矩阵算法

—231— 基于图像边界跟踪的顶点矩阵算法 李雨田,晋小莉 (西安工业大学机电工程学院,西安 710032) 摘 要:分析传统图像边界跟踪中存在的问题,根据Freeman 链码跟踪方法提出一种改进的基于像素顶点矩阵的边界跟踪方法,定义图像的像素顶点矩阵,并利用像素顶点矩阵跟踪边界,制定边界跟踪的搜索规则,同时抽取边界的顶点链码,生成围线树结构,用像素顶点的链码值表示边界。实验结果表明,该算法优于一般的链码跟踪方法,具有广泛应用性。 关键词:边界跟踪;像素顶点矩阵;链码 Vertex Matrix Algorithm Based on Image Boundary Tracking LI Yu-tian, JIN Xiao-li (School of Electrical and Mechanical Engineering, Xi’an Technology University, Xi’an 710032) 【Abstract 】The problems in traditional image border tracking are analyzed. According to Freeman chain code boundary tracking method,a pixel-based boundary tracking method of vertex is given. The image pixel vertex matrix is defined. The pixel matrix is used to track the boundary vertex. The boundaries track search rules is set up. The apex of the boundary chain code is abstracted, and the tree structure is generated. The pixel vertex chain code value is used to indicate the boundary. Experimental results show this algorithm is better than the Freeman chain code tracking methods, and has a wider versatility. 【Key words 】boundary tracking; pixel vertex matrix; chain code 计 算 机 工 程Computer Engineering 第36卷 第1期 Vol.36 No.1 2010年1月 January 2010 ·图形图像处理· 文章编号:1000—3428(2010)01—0231—02 文献标识码: A 中图分类号:TP391 图像处理是计算机学科的一个重要研究领域,也是计算机图形处理的一项核心技术。边界是图像最基本的特征,包含了可用于识别的有用信息。边界存在于目标与背景、目标与目标、区域与区域之间,给人们描述或识别目标以及解释图像提供了有价值的特征参数。 1 边界的表示方法 边界的表示方法有很多,链码表示最早于1961年由Freeman 提出,如图1所示,用0,1,2,3这4个代码表示四方向链码,用0,1,2,3,4,5,6,7这8个代码表示八方向链码。 1 42 23 (a)四方向链码 (b)八方向链码 图1 四方向链码和八方向链码 从图像边界上的任一像素点开始,按某一方向行走(逆时 钟或顺时针),并用码记录相邻像素间的行走方向,直到回到起始点为止,就构成了图像的Freeman 链码。图像边界可由Freeman 链码唯一表示。 2 边界跟踪的研究现状与存在的问题 边界跟踪算法存在的问题主要有以下2个方面: (1)漏追踪和重复追踪,即丢失外轮廓或内轮廓。文献[1]为了避免丢失内轮廓,采用边界填充的办法,显然这很费时。 (2)破坏连通性,将一个轮廓跟踪成多个轮廓。为解决该问题,文献[2]采用2种标记色分别标记边界像素和与边界近邻的背景像素,以解决漏追踪和重复追踪问题。 顶点链码出现较晚,基于顶点链码的跟踪算法也较少,现有的边界跟踪算法大都是基于Freeman 链码给出的,文 献[3]给出的边界标定自动机获得的是边界的顶点链码,但该文也没有给出图像的围线树结构的生成算法。 本文给出一种能正确跟踪任意复杂图像边界的基于像素顶点矩阵边界跟踪算法,通过跟踪边界获得边界的顶点链码。 3 边界跟踪与围线树结构的生成 边界跟踪包括3个步骤[4]: (1)确定作为搜索起点的边缘点,根据算法不同,可以是一个点或多个点,起点的选择很重要,整个算法对此点的依赖很大。 (2)确定和采取一种合适的数据结构和搜索机理,在已发现的边界点基础上确定新的边界点,这里要注意研究先前的结果对选择下一个检测点和下一个结果的影响。 (3)确定搜索终结的准则或终止条件,并在满足条件时停止进程,结束搜索。 3.1 定义像素顶点矩阵 文献[5]提出用边界像素的顶点来标记区域边界的方法。 基金项目:西安工业大学校长基金资助项目“CNC 数控雕刻机技术开发与研制”(605-01000841) 作者简介:李雨田(1981-),男,硕士研究生,主研方向:数控技术,图像处理;晋小莉,教授 收稿日期:2009-09-20 E-mail :liyutian721@https://www.doczj.com/doc/f95203533.html,

相关主题
文本预览
相关文档 最新文档