非接触人体测量技术中图像处理设计(编辑修改稿)内容摘要:

2) 图的深度优先遍历设计 ( 3) 边缘识别方法的选择 ( 4) 基于深度优先遍历的 Roberts 边缘识别方 法 (二 ) 拟采用的研究方法与手段 1. 确定硬件的整体连接方法及工作原理 2. 了解图的数据结构及存储方式 3. 了解各种边缘识别方法 参考文献 [1] 丁玉兰 ,郭刚 ,赵江洪 . 人机工程学 [ M] . 北京理工大学出版社 ,2020. [2] 翟文斌.基于图像处理的人体测量 [D]吉林大学. 20206 [3] 赖维铁 . 人机工程学 [ M ] .华中理工大学出版社 ,1989. [4] 李雯雯 ,张文斌 . 信息化 :服装人体计测的发展方向 [ EB/ OL ] . h , [5] 王玉秀.非接触式人体测量系统的研究一图像处理、人体围度曲线分析与计算 [D]天津工业大学. 太原理工大学毕业设计(论文) 8 专题正文部分 第 一 章 引 言 现实生活中人们在很多场合需要对人体进行尺寸的测量。 例如在为人体制做衣服时,需要对被设计对象进行身体尺寸的测量,即所谓“量体裁衣”;在一些医疗机构中对人体的检查以及对人体的尺寸测量,对于研究分析人体健康程度和一些机能参数例如人的吸引力、生育能力等都是很重要的。 人体尺寸测量技术已经由简单的人工接触式逐步转变为非接触式自动测量,基于图像处理的人体尺寸测量就是其中之一。 现代人体测量技术大多使用三维人体扫描技术采集原始数据与图像,将所获取的信息综合处理得到人体各部位的三维尺寸,进行人体重建,三维扫描技术为该自动化测量的核心部分,例如 :激光测量法、红外线测量法、密栅云纹法和摄影测量法等。 由这些方法研制的量体系统结构复杂,体积庞大,成本高,从原理推断,测量精度应较高,但实际应用上尚存在问题。 本论文是建立在凌阳单片机中 的图像识别 模组 基础上建立的全新的非接触式测量技术,包括硬件设计及软件设计两大部分,本文重在软件设计中的图像处理部分,包括基于深度优先遍历的图像边缘处理设计,以及对 图像中关键参数的获取。 第 二 章 硬件设计 ( 由于本论文重在图像边缘识别级参数获取方面,故只对硬件设计作简要说明 ) 本设计中所包含的主要器件有:自动旋转平台,基于凌阳单片机的图像识别模组包含摄像头模组, LCD 模组和 SPCE3200 的开发板。 它的工作原理就是通过图像识别模组采集和处理来自旋转平台上目标物体的图像数据从而得到他的各种尺寸,然后通过显示屏显示出来。 工作原理: 景物通过镜头生成的光学图像投射到 CMOS图像传感器表面上,然后转为 太原理工大学毕业设计(论文) 9 电信号,经 A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片中 处理并通过接口总线输出。 其中 CMOS影像传感器它在捕获图像信息的过程中会实时的将图像数据在时钟的配合下传送到 CSI单元, CSI单元在内部控制器的控制条件下完成数据的接收和处理,然后再把格式化的数据传送到指定的 DRAM缓冲区中。 然后在 LCD上显示出来。 如下图,当目标物体放在旋转平台上时,图像处理模组开始工作即光敏元件开始采集目标物体图像,传到 SPCE3200 中并开始处理图片,从中得到所需要的信息。 然后,平台开始旋转,当转到特定位置时即旋转 90 度,平台停止旋转,从而是光敏元件得到目标侧面图片,通过这些图片我 们就可以得到目标物体的相关数据。 系统流程图示、测量示意图如图所示。 、 摄像头 模组 和 SPCE3200 开发板的集成盒 自动旋转平台 显示屏 太原理工大学毕业设计(论文) 10 第三章 图像设计设计 一 . 图的定义及存储结构 图( Graph)是一种较线性表和树更为复杂的数据结构。 在线性表中,数据元素之间仅有线性关系,即每个数据元素只有一个直接前驱和一个直接后继;在树形结构中,数据元素之间有着明显的层次关系,虽然每一层上的数据元素可能和下一层中多个元素(孩子)相关,但只能和上一层中一个元素(双亲)相关;而在图形结构中,结点之间的关系可以是任意的,任意 两个数据元素之间都可能相关。 首先 先 介绍一下图的定义 :图是一种数据结构,它的形式化定义为 Graph = ( V, R) , 其中 V={x|x ∈ dataobject} , R={VR} VR= { x , y |P( x , y) ∧ ( x , y ∈ V) } 在图中的数据元素通常称做顶点( vertex), V 是顶点的有穷非空集合; VR 是两个顶点之间的关系的集合。 若 x, y∈ VR,则 x, y 表示从 x 到 y 的一条弧( arc),且称 x 为弧尾( tail)或初始点( initia1 node),称 y 为弧头( head)或终端点( terminal node),此时的图称为有向图( digraph)。 若 x, y ∈ VR 必有 y, x ∈ VR,即 VR 是对称的,则以无序对( x, y)代替这两个有序对,表示 x 和 y 之间的一条边( edge),此时的图称为无向图( undigraph)。 在计算机中有很多方法来存储图的信息,由于图的结构复杂,使用广泛,经常使用链式存储结构。 一般应根据实际的应用,来选择合适的表示方法。 常用的存储图的结构有:数组表示法、邻接表、十字链表、邻接多重表 一, 数组表示法(邻接矩阵)。 在此我们以邻接表作为研 究对象。 图的邻接矩阵存储方法跟树的孩子链表示法相类似,是一种顺序分配和链式分配相结合的存储结构。 邻接表由表头结点和表结点两部分组成,其中图中每个顶点均对应一个存储在数组中的表头结点。 如这个表头结点所对应的顶点存在相邻顶点,则把相邻顶点依次存放于表头结点所指向的单向链表中。 如图所示,表结点存放的是邻接顶点在数组中的索引。 对于无向图来说,使用邻接表进行存储也会出现数据冗余,表头结点 A 所指链表中存在一个指向 C 的表结点的同时,表头结点 C 所指链表也会存在一个指向 A 的表结点。 如图 1 为无向图的邻接表示意图。 有向图的邻接表有出边表和入边表(又称逆邻接表)之分。 出边表的表结点存放的是从表头结点出发的 太原理工大学毕业设计(论文) 11 有向边所指的尾顶点;入边表的表结点存放的则是指向表头结点的某个头顶点。 如图 2所示, 为有向图 (a)的出边表和入边表。 图 1 图 2 //———————— 以下是有向图的邻接表存储表示 —————————— // define MAX_VEXTEX_NUM 20 typedef struct ArcNode { int adjvex; //该弧所指向的顶点的位置 struct ArcNode *nextarc; //指向下一条弧的指针 InfoType *info; //该弧相关信息的指针 }ArcNode; typedef struct VNode { 太原理工大学毕业设计(论文) 12 VextexType data; //顶点信息 ArcNode *firstarc; //指向第一条依附该顶点的弧的指针 }VNode,AdjList[MAX_VEXTEX_NUM]; typedef struct { AdjList vertices; int vexnum,arum; //图的当前顶点数和弧数 int kind; //图的种类标志 二 .图的优先遍历 ⑴ 图的深度优先遍历的递归定义 假设给定图 G 的初态是所有顶点均未曾访问过。 在 G中任选一顶点 v 为初始出发点 (源点 ),则深度优先遍历可定义如下:首先访问出发点 v,并将其标记为已访问过;然后依次从 v出发搜索 v的每个邻接点 w。 若 w未曾访问过,则以 w 为新的出发点继续进行 深度优先遍历,直至图中所有和源点 v有路径相通的顶点 (亦称为从源点可达的顶点 )均已被访问为止。 若此时图中仍有未访问的顶点,则另选一个尚未访问的顶点作为新的源点重复上述过程,直至图中所有顶点均已被访问为止。 图的深度优先遍历类似于树的前序遍历。 采用的搜索方法的特点是尽可能先对纵深方向进行搜索。 这种搜索方法称为深度优先搜索 (DepthFirst Search)。 相应地,用此方法遍历图就很自然地称之为图的深度优先遍历。 ⑵ 深度优先搜索的过程 太原理工大学毕业设计(论文) 13 设 x是当前被访问顶点,在对 x 做过访问标记后 ,选择一条从 x 出发的未检测过的边 (x, y)。 若发现顶点 y已访问过,则重新选择另一条从 x 出发的未检测过的边,否则沿边 (x, y)到达未曾访问过的 y,对 y访问并将其标记为已访问过;然后从 y 开始搜索,直到搜索完从 y 出发的所有路径,即访问完所有从 y 出发可达的顶点之后,才回溯到顶点 x,并且再选择一条从 x出发的未检测过的边。 上述过程直至从 x出发的所有边都已检测过为止。 此时,若 x 不是源点,则回溯到在 x之前被访问过的顶点;否则图中所有和源点有路径相通的顶点 (即从源点可达的所有顶点 )都已被访问过,若图 G 是连通图,则遍历过程结束 ,否则继续选择一个尚未被访问的顶点作为新源点,进行新的搜索过程。 ⑶ 图的深度遍历 的 C语言程序 include typedef int datatype。 /*假定线性表元素的类型为整型 */ define maxsize 1024 /*假定线性表的最大长度为 1024*/ define n 100 /* 图的顶点最大个数 */ typedef char VEXTYPE。 /* 顶点的数据类型 */ typedef float ADJTYPE。 /* 权值类型 */ typedef struct { VEXTYPE vexs[n]。 /* 顶点信息数组 */ ADJTYPE arcs[n][n]。 /* 边权数组 */ int num。 /* 顶点的实际个数 */ }GRAPH。 /***********************图的深度周游 **********************/ void DFS(GRAPH g,int qidian,int mark[]) //从第 qidian 个点出发深度优先周游图 g中能访问的 各个顶点 { ==0。 int v1。 太原理工大学毕业设计(论文) 14 mark[qidian]=1。 printf(%c ,[qidian])。 for(v1=0。 v1。 v1++) { if([qidian][v1]!=0amp。 amp。 mark[v1]==0) DFS(g,v1,mark)。 } 三 .图像的边缘识别 边缘是图象最基本的特征 . 边缘检测在计算机视觉、图象分析等应用中起着重要的作用 ,是图象分析与识别的重要环节 ,这是因为子图象的边缘包含了用于识别的有用信息 . 所 以边缘检测是图像分析和模式识别的主要特征提取手段。 所谓边缘是指其周围像素灰度后阶变化或屋顶状变化的那些像素的集合 ,它存在于目标与背景、目标与目标、区域与区域 ,基元与基元之间。 因此它是图象分割所依赖的重要的特征 ,也是纹理特征的重要信息源和形状特征的基础。 而图象的纹理形状特征的提取又常常依赖于图象分割。 图象的边缘提取也是图象匹配的基础 ,因为它是位置的标志 ,对灰度的变化不敏感 ,它可作为匹配的特征点。 图像边缘是图像局部特性不连续性的反应,这种不连续性包括灰度突变、颜色变化、纹理结构突变等,图像的边缘表示使用 了边缘的结构、边缘点的方向、模糊尺度和两边的灰度值。 边缘可以粗略的分为阶跃形边缘和屋顶形边缘两种,对于阶跃形边缘,二阶方向导数在边缘处呈零交叉;对于屋顶形边缘,二阶方向导数在边缘处取极值。 图象的其他特征都是由边缘和区域这些基本特征推导出来的 . 边缘具有方向和幅度两个特征 . 沿边缘走向 ,像素值变化比较平缓。 而垂直与边缘走向 ,则像素值变化比较剧烈 . 而这种剧烈可能呈现阶跃状 ,也可能呈现斜坡状。 边缘上像素值的一阶导数较大。 二阶导数在边缘处值为零 ,呈现零交叉。 ⑴常用边缘检测方法介绍及对比 常用的边缘检测方法有: Roberts 边缘检测算子 、 梯度边缘检测 、 Sobel 边缘检测算子、 Prewitt 边缘检测算子、 Laplace 边缘检测算子等。 差分边缘检测方法是最原始、基本的方法。 根据灰度迅速变化处一阶导数达到最大(阶跃边缘情况)原理,利用导数 太原理工大学毕业设计(论文) 15 算子检测边缘。 这种算子具有方向性,要求差分方向与边缘方向垂直,运算繁琐,目前很少采用。 以下是对几种经典的边缘检测算子进行理论分析,并对各自的性。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。