如何使用C#技术实现“摄像头互动鼠标”的功能?
我想实现的效果是这样子的:主机装有“监控用”摄像头,通过视频采集卡采集图像。
想实现的功能是,当有人经过,或对摄像头挥手时,能控制“鼠标指针”在屏幕上做出相应的移动,比如:有人经过时,鼠标指针会跟着他走的方向移动,或当有人挥手时,手往左边摆动,鼠标指针在屏幕上做往左移动的动作。
求各位高手不吝赐教。说说怎么实现,最好给出代码。
[解决办法]
这要大牛来啊。。。沙发坐起学习
[解决办法]
高科技的东西..感觉很难.关注中..
[解决办法]
可以设置移动侦测, 以像素为单位,根据对比像素刷新的大小来设置你鼠标移动的方向;
主要问题是先设置移动侦测的范围 比如32*32像素为单位 每当有一定物体大于这个单位 就出发你鼠标移动的方位 大概思路就是这样
[解决办法]
我的本本华硕的,在系统登录的时候有人脸识别功能,这个软件不知道如何开发的,我也想知道原理和实现技术。
[解决办法]
关注中
[解决办法]
转载的~嘎嘎我没这么牛!
(暂没考虑运行效率)
1. 从摄像头中截取一张图片
2. 在图片中搜索红点的坐标,并做记录
3. 再次从摄像头中截取一张图片
4. 获取红点坐标
5. 比较两次红点的坐标即可判断鼠标要移动的方向
6. 调用Robot类(since: jdk1.2)的方法来移动鼠标
第2步细分:
0). error = 20 ; // 所允许的最大误差
1). 取像素的色值:RGB(r,g,b) 放到数组 a=[r,g,b]
2). b = [255,0,0] (红色)
3). 计算 a和b的欧几里德距离
4). 如果距离小于error,该节点就是要搜索的点
(第2步可以采取递归实现,先将误差值设置小一点,第一次如果没找到,就将误差error调大些,再搜索,直到找到或者误差大于所允许的最大值为止。试验中该方法效果很好)。
试验结果证明:该方法确实可以实现鼠标移动的控制,但由于没考虑运行效率,所以效果不好。
1. /** 2. * 欧几里德距离 3. * @param a 4. * @param z 5. * @return 6. */ 7. public static double getDistance(double[] a, double[] z){ 8. double rs = 0; 9. int d = a.length; 10. for( int i = 0; i < d ; i++){ 11. double r = Math.pow(a[i] - z[i],2); 12. rs += r; 13. } 14. 15. return Math.pow(rs, 0.5); 16. }
[解决办法]
牛X的人啊!
[解决办法]
这是一个猜测:
通过摄像头获取一个方框图。如果图片在X时间内没变化识别功能不启用(此图作为标准对比图)。如果有人过,那么图就不同,图不同就启用识别功能。在摄像框中设一个焦点(一般是中心)也就是“十”字。人或手动,那么图片中的连续像素一定大幅变化,“十”字默认设为大幅变化像素坐标的中心。这样就会跟着动了。至于如何识别图像的不同,对比两张图片相似度。如果有人从摄像头前过,那必然会有大量在原位置(坐标)的像素变化(且是邻居像素)。
[解决办法]
做过,但效率极低,画面越大速度真慢.
[解决办法]
人脸或者动作识别 不是论坛上一句两句能说清楚的。。
[解决办法]
已经有这样的东西了,有一种摄像头操控的游戏,玩家能够在摄像头面前挥动手脚来进行颠球,打海盗等小游戏,是用vc++开发的
[解决办法]
他能够这样做,证明已经能感知摄像头摄入影响相对于显示荧幕的坐标了,那时候操作鼠标肯定是没问题的,那游戏还要更难,比如颠球,你如何去知道摄入信息是如何对球体进行打击...
[解决办法]
觉得你的问题的关键在于如何对采集的图像作识别的问题,比较定时采样的两个图像的差别
[解决办法]
给点你建议吧,我们用过C#做过摄像头捕捉运动。
C#+DirectShow完全可以实现,你尝试到codeproject网站上去下载 C#的Motion detector运动检测算法,老外都附带源代码,
[解决办法]
OK,我要下载,我要下载,我要下载,我要下载
[解决办法]
需要调用c++吗?
[解决办法]
学习!!!!!!!!!!!
[解决办法]