内容简介:在展示PPT和产品发发布时,或者看电影时如果能用手势操作切换会十分方便。这里使用opencv的开源技术,轻松实现这一功能需求。我很久以前曾经写一个篇被动摄像头的文章,捕捉到摄像头中有移动的物体时,开始录相,移动消失,不再录相。这样具有简单智能的摄像头,可以为客户节省很多的磁盘空间。本文在捕捉运动物体的基础上实现手势操作。原文代码如下:本文基于上一文的技术做手势或者体感识别。前提是我们能够捕捉到动态物体。有一批运行物体的坐标,我们就能根据坐标算出物体运行的方向和速度和方向。其实手势操作也非常简单,就是坐标转
在展示PPT和产品发发布时,或者看电影时如果能用手势操作切换会十分方便。这里使用opencv的开源技术,轻松实现这一功能需求。我很久以前曾经写一个篇被动摄像头的文章,捕捉到摄像头中有移动的物体时,开始录相,移动消失,不再录相。这样具有简单智能的摄像头,可以为客户节省很多的磁盘空间。本文在捕捉运动物体的基础上实现手势操作。原文代码如下: https://blog.csdn.net/cnbloger/article/details/77513514 ,在原代码中,我对捕捉到的动态物体做了一些染色等特效变幻。
本文基于上一文的技术做手势或者体感识别。前提是我们能够捕捉到动态物体。有一批运行物体的坐标,我们就能根据坐标算出物体运行的方向和速度和方向。其实手势操作也非常简单,就是坐标转换。以最简单的手势手上下左右摇动切换文件为例。需要把手部的运动转为向左,向右,向上,向下四个方向的指令。如果准确的获取方向,我们先通过摄像头捕捉到手部运行的第一帧图像和最后一帧图像,有两种算法都可以计算到方向。
1.用最后一帧手的位置减去第一帧手的位置,屏幕坐标是左手坐标系,原点在左上角,x轴正方面向右,Y轴正方向向下,如果手向右,得得值必大于0,向左小于0,向上小于0,向下大于0,由于手的移动和捕捉不是精密仪器,必然会有误差。再比较横向位移竖向位移大小,可以确定手的方向。
2.第二种方法比较简单,在屏幕中央设定一个矩形的区域用来做为方向判断区域,捕捉到手的最后一帧或者所有帧的手的位置,一旦位置的x超出左边界,手势向左,一旦超超过右边界,手势向右,超过上边界,手势向上,超过下边界,手势向下。
两种算法代码如下,1为左,2为右,3为上,4为下,opencv 支持C,C++,python,jAVA和各种系统,使得可以移植在各种平台,这里只展示 JAVA 代码:
public static int getDirect2(Point lastPoint, Point firstPoint) {
if (firstPoint != null && lastPoint != null) {
int x = (int) (lastPoint.x - firstPoint.x);
int y = (int) (lastPoint.y - firstPoint.y);
if (x > y) {
if (x > 200) {
return 1;
} else if (x < -200) {
return 2;
} else {
return 0;
}
} else {
if (y > 200) {
return 3;
} else if (y < -200) {
return 4;
} else {
return 0;
}
}
} else {
return 0;
}
}
public static int getDirect3(Point point) {
if ((point.x - left) < -1f) {
return 1;
} else if ((point.x - right) > (1f+50)) {
return 2;
} else if ((point.y - up) < -1f) {
return 3;
} else if ((point.y - down) > (1f+50)) {
return 4;
}
return 0;
}
运行效果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 没跑!勒索病毒幕后操控者现身:就是朝鲜....
- 车联网的裸奔:黑客操控、骚扰电话、垃圾短信
- 算法遇见DNA?未来谁会操控你的内容消费
- 全球性的DNS劫持活动:大规模DNS记录操控
- 全球性的DNS劫持活动:大规模DNS记录操控
- 给我一个无线切入点,我就可以操控你的物理隔离网络
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Data Structures and Algorithm Analysis in Java
Mark A. Weiss / Pearson / 2006-3-3 / USD 143.00
As the speed and power of computers increases, so does the need for effective programming and algorithm analysis. By approaching these skills in tandem, Mark Allen Weiss teaches readers to develop wel......一起来看看 《Data Structures and Algorithm Analysis in Java》 这本书的介绍吧!