已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
此文档收集于网络,如有侵权,请联系网站删除三维交互技术算法及FPGA实现概述:本算法设计主要采用双摄像头,基于双目视觉技术来定位3维手势。图像采集输入:图像输入只采集亮度信号,并且经过二值化,只采集255和0图像。存入到sdram。手部边缘提取总体思路如下:(1) 对获得的图像进行腐蚀。使用7*7的结构元,得到pHand(2) 然后再对腐蚀得到的图像进行膨胀。使用7*7的结构元,得到pHandOpen。(3) 对pHandOpen进行腐蚀运算。使用3*3结构元,得到pErode。(4) 使用pHandOpen 减去 pErode ,得到手部边缘,记为pHand。连通域判断总体思路如下:对边缘提取的图像进行漫水填充,使用areaNum对连通区域的个数进行计数漫水填充算法:1. 逐行扫描,当碰到第一个非0数据时(红色格),使用四连通进行填充,并且逐行进行,直到把这个连通域填充完毕,并把这个区域设为值1。2继续逐行扫描,碰到非0和非1的数据时(绿色格),使用四连通进行填充,并且逐行进行,直到把这个连通域填充完毕,并把这个区域设为值2.3. 以此类推NOTE:这里最多能有256个连通区域,值得注意算法实现考虑:考虑一个3*2窗口:P为像素值,为0或1.考虑块的标记值:如下:由这里看出,需要存储由标记值标记灰度的图像。以便后来进行去除其它干扰点时使用。以及在做标记处理的时候。必须同步读取标记好的数据。从头搜索像素: 第一个点或第一行,左边点和上边点扩充0值。其他空白处不考虑。标记值初始化为1:连通域像素点个数计数值:开辟一个数组Sum:同时开辟等价关系数组K:等价关系数组为1个下标代表联通块,数组值代表这块标记的灰度值,如果两块的灰度标记值相等,则认为这两块是连通的。下面用lab()来表示K数组里面的值。1Pn(0)如果为0.则窗口继续移动,如果1:判断if Pn(0)=Pn-1(0), 则Ln(0)=Ln-1(0)Else if Pn(0)=Pn(1) 则Ln(0)=Ln(1), else 都不等:Pn(0)=Z, 把Z写入Z为下标的K数组,Z+;计数:判断if Pn(0)=Pn-1(0), 则下标为Ln-1(0)的 Sum数组值+1;Else if Pn(0)=Pn(1) 则Ln(1)的 Sum数组值+1.2两个块等价关系判断:如果 Pn(0)=Pn(1),Ln(0)!=Ln(1)而说明这两块是等价的。Ln(0)和Ln(1)标记是等价的。步骤一:如果Ln(0)Ln(1):并且lab(Ln(0)=Ln(0) 则说明Ln(0)块还未与其他块相连,或者是相连块里面标记最小的。则Lab(Ln(0)=lab(Ln(1),让其与Ln(1)块相连。如果Lab(ln(0)!=Ln(0),则证明Ln(0)块已经于其他块相连,因此需要找到这一个块中标记最小得块,即Lab(t)=t的块,t为块标记。这里我们采取追踪标记的办法,令t= Lab(ln(0);即t是与lab(Ln(0)块相连的块,如果lab(t)=t则t块就是最小的块,以t和Ln(1)块比较。然后再重复步骤一:步骤二:Ln(0)Ln(1):并且lab(Ln(1)=Ln(1),则说明Ln(1)还未与其他块相连,或是相连块中最小标记的。则lab(Ln(1)=Ln(0)。如果lab(Ln(1)!=Ln(1), 则证明Ln(1)块已经于其他块相连,因此需要找到这一个块中标记最小得块,即Lab(t)=t的块,t为块标记。这里我们采取追踪标记的办法,令t= Lab(ln(1);即t是与lab(Ln(1)块相连的块,如果lab(t)=t则t块就是最小的块,否则继续追踪,然后以t和Ln(0)块比较。然后再重复步骤一:3.遍历等价关系表数组,以(标记值内的值)作为数组下标的单元的值去跟新原值:用C语言表示即:*p=*(*p)。4把每个等价的计数单元相加,找出最大值。5根据等价关系数组更新图像。6把除最大连通域部分图像清零。保留最大的连通分量总体思路如下:如果areaNum的值为零,代表这帧图像中没有连通域,则直接返回零值。如果areaNum不为零,进行逐行扫描,建立一个数组pAreaPixsj,比较当前像素的pTempj和areaNum的大小,如果pTeamj的值小于等于areaNum的值且pTeamj的值大于零,则pAreaPixspTeamj-1加一。此时pTeamj的值为上一步中区域的赋值,扫描结束整副图像,最后得到一个数组,其中的最大值为连通域的最大值maxLen,进而得到最大连通域的maxIndex(实际上也是areaNum-1)。通过判断pTempj和maxIndex+1的值是否相等,来标记出最大的连通分量,作为手指的区域。提取指尖坐标思路如下:如果没有连通分量,直接返回;有连通分量,寻找轮廓的起始点,遍历所有轮廓点,并将这些点的坐标保存在数组中通过对轮廓曲率的变化找到小于阈值的边缘点进一步对这些边缘点进行判断,得到指尖坐标(4)、(5)步骤如图所示:通过判断角度得到边缘点,使用T判断边缘点是否为指尖点。从最后一行开始扫描:得到第一个点后,判断该点的上,下,左,右。这里可以做一个状态机来实现;状态1:扫描得到第一个点。存储该点坐标,转到状态2状态2:扫描该点的右边点:如果该点为1:则如果该点为上一个点,转到状态3,如不是:存储该点坐标,转到状态1。否则转到状态3.状态3:扫描该点的上边点:如果该点为1:则如果该点为上一个点,转到状态3,如不是:存储该点坐标,转到状态1。否则转到状态4:状态4:扫描该点的上边点:如果该点为1:则如果该点为上一个点,转到状态5,如不是:存储该点坐标,转到状态1。否则转到状态5:状态5:最后一个点扫描结束。求角度:扫描数组里的数据:数据采用FPGA片内RAM实现。绘制指尖所在点计算指尖点的世界坐标思路如下:由空间中某点在左右摄像头中的坐标计算出该空间点的三维世界坐标,世界坐标系与左摄像头的摄像机坐标系重合。具体公式见程序。三维坐标进行IMM滤波卡尔曼滤波:这种技术的多源于kinect,111234511267744551887445599111810711412913131114151513161114141415171716123456789101112131415161718192012345648974913141411161112345112644445518844455991118444499131341414141344141414144441、手部边缘提取原始图象01经7X7腐蚀pHand 以一7X7的结构元素(如图中蓝色框),如果框中有0,则红色框的像素点为0. 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000再经7X7膨胀pHandOpen 以一7X7的结构元素(如图中蓝色框),如果框中有1,则红色框的像素点为1. 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111经3X3腐蚀 pErode以一3X3的结构元素(如图中蓝色框),如果框中有0,则红色框的像素点为0. 000000000111111001111110011110011111100111111000000000000000000111111000111111000011111100111111100011111100011111000111111001111110011110001111000111111001111110011110011110011110001111100111110011110011110011111111111111100111111111111111000000000000000000pHandOpen pErode得到边缘1111111110000001100000011000011000000110000001111111111111111110000001110000001111000000110000000111000000111000001110000001100000011000011100001110000001100000011000011000011000011100000110000011000011000011000000000000000110000000000000001111111111111111112、连通域判断使用四连通逐行进行填充,直到把这个连通域填充完(先上后左)111111111
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年互联网金融行业金融科技创新与数字化服务模式研究报告及未来发展趋势预测
- 2025年教育科技互联网行业在线教育与人工智能教学模式研究报告及未来发展趋势预测
- 2025年新能源行业换电站布局优化策略绿色能源消费资格考核试卷
- 2025年户外运动行业健康生活方式与消费升级研究报告及未来发展趋势预测
- AI智能定价模型动态调整与利润优化能力考核试卷
- 低速汽车:领跑未来-探索行业发展与创新实践
- 2025重庆市潼南区公安局辅警岗招聘30人笔试考试参考试题及答案解析
- 2025年兴城市人民医院面向社会公开招聘院内聘用制护士考试笔试备考题库及答案解析
- 2026年水利部长江水利委员会事业单位招聘107人(第一批)考试笔试备考题库及答案解析
- 2025黑龙江黑河市爱辉区林业和草原局所属事业单位招聘20人笔试考试参考题库及答案解析
- 咏史完整版本
- 汉字笔画练习字帖
- 塔磨机安全操作规程
- 消防水泵房巡检签到表
- 全科医师转岗培训理论考试试题及答案
- 公会之间挂靠主播合作协议书
- 实验三基因组序列分析
- 2022年澄迈县辅警招聘笔试试题及答案解析
- 小学语文人教三年级上册 童话中有趣的角色
- 2022年临沧边境经济合作区国有资本投资运营有限公司招聘笔试试题及答案解析
- 思想道德与法治课件:第六章 第三节 维护宪法权威
评论
0/150
提交评论