《激光虚拟键盘设计课件》由会员分享,可在线阅读,更多相关《激光虚拟键盘设计课件(19页珍藏版)》请在金锄头文库上搜索。
1、激光虚拟键盘设计通过光学手段,将计算机键盘的画面通过激光投影到任意的平面上(如桌面)上,并且允许操作者像使用真实键盘那样进行输入操作。以Opencv提供的开源计算机视觉库为开发环境,利用激光三角测距原理,通过摄像头采集虚拟键盘按键的三维坐标,来判断按键输入事件。设计思想目录硬件软件总结123 系统结构框图整个系统主要硬件构成:红外激光定位模块:一字线激光50mw808nm图像投影模块:键盘投影器红外图像采集模块:广角摄像头加装红外带通滤波片硬件电路介绍 系统软件设计 图像预处理程序设计由于本设计里采用了广角镜头,摄像头采集到的画面会严重扭曲,扭曲的画面是很难直接进行处理,计算出之后的坐标。因此
2、需要对摄像头镜头进行校正。首先加载原始图像,CV-loadimage(strfilename,flags=cv_load_image_color),其中strfilename为被读入的文件名,flags为指定读入的图像的颜色和深度。然后畸变校正CvUndistort2(src,dst,intrinsic_matrix,distortion_coeffs),其中src为原始图像,dst为结果图像,intrinsic_matrix为相机参数矩阵,distortion_coeffs)为4个变形系数组成的向量。再用opencv提供的cvRemap函数,通过校正数据将扭曲的画面重新校正。思想实现 兴趣点
3、提取程序设计先用cvFindContours对光斑画面进行轮廓提取,然后算出每个光斑区域在图像中的位置,进一步通过质心法求出光斑中心的大概坐标。首先灰度化,通过cvCvtColor(src,dst,CV_BGR2GRAY)实现;然后二值化阈值,cvThreshold(dst,dst,f_thresh,255,CV_THRESH_BINARY)实现;最后查找轮廓,通过cvFindContours(dst,f_storage,&contours)实现。思想实现 质心法然后关于质心法,先要弄清图像矩。对于一张二维图像,p+q阶矩阵定义:,然后对其进行离散化得到离散化后的数字图像,0阶矩(m00)为物
4、体的质量,1阶矩(m10,m01)表示物体的质心,2阶矩(m20,m02,m11)表示旋转半径.因此图像的质心坐标计算公式:思想 obj._center.x=myMoments.m10/myMoments.m00;obj._center.y=myMoments.m01/myMoments.m00;实现 按键映射程序设计在得到f(x,y)后,要进行对应的按键事件的判断。这需要建立以个映射机制。利用GUI系统进行UI元素的碰撞。思想 首先将键盘数据存储下来实现 然后通过kd_tree算法查找 注入事件程序设计采用windows提供的SendInputAPI想系统注入按键事件。postmessage(_hwnd,wm_KEYD0WN,A,0)/模拟按键Apostmessage(_hwnd,wm_KEYD0WN,A,129)/模拟组合按键ALT+A实现思想 总结本设计可以完成键盘单个按键及组合按键输入,还有绘图功能。通过对每个模块的软硬件设计及调试,进一步提高我对计算机视觉的认识。感谢各位2024/8/27