红外激光键盘的原理总结

红外激光键盘的原理总结

ID:47667660

大小:182.46 KB

页数:15页

时间:2019-10-18

红外激光键盘的原理总结_第1页
红外激光键盘的原理总结_第2页
红外激光键盘的原理总结_第3页
红外激光键盘的原理总结_第4页
红外激光键盘的原理总结_第5页
资源描述:

《红外激光键盘的原理总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、....而且现在有了强大的opencv图像处理库,实现这样的虚拟激光投射键盘变得易如反掌。投影键盘的基本原理。键盘由三个主要部件组成:摄像头、键盘图案投射器、一字线性感应激光头。见下图:参考.学习....图上从上到下分别是键盘图案投射器、摄像头、一字线性感应激光头。当然,摄像头放在键盘图案投射器上面也是可以的,比如。1.键盘图案投射器在平坦的桌面投出清晰键盘图案2.最底下的一字线性激光(一般采用红外线的,这样眼睛不可见)发出一字型激光,平行于桌面射出,这样如果手指有按键活动,会在手指上形成激光光斑3.摄像头捕获激光光斑,对应于键盘图案映射的位置,就可以知

2、道哪些键被按下OK,原理很简单,剩下的关键就是摄像头的图像处理算法了,而且现在有了opencv,实现也不是难事。这里说一下实现方法。由于人眼对激光的反应不一样,780nm-808nm的激光人眼不敏感,可看到微弱的一丝红光。850nm至1064nm波长人眼不可见,通过红外感光仪器等专业设备可以看到,其中808-850nm通过摄像头可以看到。980-1064nm通过倍频片可以看到。所以我在网上买了一个808nm-810nm红外一字线激光器。这样配上滤光片,可以滤去绝大多数其他波长的杂光,只剩下红外激光的光斑。参考.学习....这样做的好处是减少干扰,增加键盘

3、的可靠性,而且使算法处理更加简单有效。加上前面的650nm虚拟键盘激光组件,总共也就花了100块钱左右。25mw808nm-810nm红外一字线激光器激光头直径18mm可见光截止400-750nm滤光片,800-1000nm高透在摄像头上看到的红外激光光斑投射到手指的图像如下图:参考.学习....对于光斑的跟踪我找了个现成的opencv扩展库cvblob,具体可以参考它的文档和例子,googlecode上有这个项目的托管。待会儿会奉上代码。cvblob可以跟踪多个光斑,所以很容易就可以实现ctrl+alt+delete之类的组合键。再来两张键盘图:参考.

4、学习....参考.学习....顺便说一句,本文中的摄像头放的位置只能捕捉到部分键盘图像,所以demo只是演示了部分键盘的按键。参考.学习....不过丝毫不影响原理介绍。如果要获得全部键盘图像,或者去买一个广角的摄像头,或者把这个摄像头位置提高,不是什么难事。时间有限,不想折腾了。代码:#include#include#include"opencv/cv.h"#include"opencv/highgui.h"#include"cvblob.h"usingnamespacecvb;参考.学习....typedefstr

5、uctkey{charc;intx0;inty0;intx1;inty1;};keyg_keymap[]={{'4',525,350,588,419},{'5',442,345,504,414},{'6',360,339,422,408},{'7',277,332,342,404},{'8',198,327,259,399},{'9',121,320,174,389},{'0',41,318,94,383},{'E',528,274,590,337},{'R',443,267,507,332},{'T',359,263,428,327},{'Y',280

6、,259,344,321},{'U',199,251,261,315},参考.学习....{'I',119,246,179,307},{'O',41,240,96,301},{'D',504,203,567,259},{'F',424,199,489,257},{'G',348,194,410,251},{'H',266,187,329,245},{'J',192,183,251,241},{'K',117,178,171,236},{'L',42,174,92,229},{'X',543,144,605,197},{'C',467,139,530,19

7、1},{'V',392,135,457,190},{'B',316,128,377,181},{'N',242,124,299,176},{'M',171,118,225,172},{'<',98,114,149,166},{'>',26,108,73,159},{'_',182,62,531,127},};intg_key_num=sizeof(g_keymap)/sizeof(key);参考.学习....intmain(){CvTrackstracks;cvNamedWindow("red_object_tracking",CV_WINDOW_AUT

8、OSIZE);CvCapture*capture=cvCaptureFromCA

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。