利用opencv借取相机摄像头为手机和电脑添加手势或者体感操控

栏目: 编程工具 · 发布时间: 6年前

内容简介:在展示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;
	}

运行效果:

利用opencv借取相机摄像头为手机和电脑添加手势或者体感操控 利用opencv借取相机摄像头为手机和电脑添加手势或者体感操控 利用opencv借取相机摄像头为手机和电脑添加手势或者体感操控 利用opencv借取相机摄像头为手机和电脑添加手势或者体感操控


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Kafka技术内幕

Kafka技术内幕

郑奇煌 / 人民邮电出版社 / 2017-11 / 119.00元

Kafka自LinkedIn开源以来就以高性能、高吞吐量、分布式的特性著称,本书以0.10版本的源码为基础,深入分析了Kafka的设计与实现,包括生产者和消费者的消息处理流程,新旧消费者不同的设计方式,存储层的实现,协调者和控制器如何确保Kafka集群的分布式和容错特性,两种同步集群工具MirrorMaker和uReplicator,流处理的两种API以及Kafka的一些高级特性等。一起来看看 《Kafka技术内幕》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具