使用网络摄像头作为传感器

时间:2013-04-29 07:19:47

标签: python hardware webcam sensor

我最近开始玩星际争霸II,然后我想出了一个对我来说比较有趣的问题。

在游戏中有三种控制相机的方法:

  1. 键盘键[向上] [向下] [向左] [向右]
  2. 用鼠标滚动屏幕边缘
  3. 按住鼠标中键滚动
  4. 我更喜欢键盘滚动,因为它很流畅。我不喜欢用鼠标滚动时相机移动的方式。

    使用键盘滚动会出现左手忙于滚动的问题,并且很难使用其他热键。我希望我还有一只手可以进行相机滚动。

    我的屏幕顶部还有一个网络摄像头。我想到了将网络摄像头用作传感器的想法。

    是否有一种简单的方法可以区分颜色或与网络摄像头的方向?我看到的实现如下:用四种颜色绘制匹配的每一面,每个方向一个:向上,向下,向左,向右。将比赛放入口中,然后用舌头向上,向下,向左和向右移动。

    如果网络摄像头可以区分这些颜色,它将成为完成向上,向下,向左和向右移动的完美操纵杆。

    我想在星际争霸II中使用它,但一旦实施,它可以用于其他游戏和任何其他项目。

    我可以做一些Python。

    是否有可编程解决方案将网络摄像头变成传感器?

2 个答案:

答案 0 :(得分:0)

转到http://openkinect.org/wiki/Python_Wrapper并获取一些代码。 使用包装器来区分运动(基础是用另一个框架测量一个框架并计算某个mean_value(oldPixelArea,newPixelArea)的方向,这将为您提供控制。)。

下一步是向星际争霸提交击键,如果我对暴雪有足够的了解,就不允许进行击球。 但是你可以使用:https://code.google.com/p/pywinauto/

如果你没有kinnect相机(或者不想要一个)。 你必须自己实现一切...... 一切都是从阅读图像帧(逐个),分析三维运动或只是一个闪电不能相差太多的选定区域,并用它作为“固定”点来读取方向的运动。

Pygame可以读取网络摄像头数据,因此这将是一个良好的开端: http://www.pygame.org/docs/tut/camera/CameraIntro.html

答案 1 :(得分:0)

我建议您查看OpenCV,这是一个非常好的计算机视觉库。它们具有许多语言的绑定,包括Python。

您将找到几个教程和代码示例,可帮助您编写面部检测/跟踪软件,例如: