【问题标题】:Using webcam as a sensor使用网络摄像头作为传感器
【发布时间】:2013-04-29 15:50:00
【问题描述】:

我最近开始玩星际争霸 II,我想出了一个对我来说比游戏本身更有趣的问题。

游戏中有3种控制相机的方式:

  1. 键盘键 [上][下][左][右]
  2. 用鼠标滚动屏幕边缘
  3. 按住鼠标中键滚动

我更喜欢键盘滚动,因为它很流畅。我不喜欢用鼠标滚动时相机的移动方式。

使用键盘滚动有一个问题,即您的左手忙于滚动并且很难使用其他热键。我希望我能多一只手来滚动相机。

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

有没有一种简单的方法可以通过网络摄像头区分颜色或方向?我看到的实现如下:用四种颜色绘制匹配的每一侧,每个方向一种颜色:上、下、左、右。将火柴放入口中,舌头上下左右移动。

如果网络摄像头可以区分这些颜色,那将是一个完美的操纵杆来进行向上、向下、向左和向右移动。

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

我会做一些 Python。

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

【问题讨论】:

  • 你能解释一下你所说的“口中火柴”是什么意思吗?
  • 是的,有很多解决方案。但是你仍然需要自己实现很多。最快的方法是将您的应用程序连接到 kinnect 摄像头:openkinect.org/wiki/Python_Wrapper,这将为您提供一种快速区分动作的方法。
  • “口中的火柴”只是一个比喻。它可以是任何有四个边和长的东西。 clipartof.com/interior_wall_decor/details/…
  • 顺便说一句,我并不孤单。人们在同一个方向思考,但有脚控制器。它几乎在市场上! kickstarter.com/projects/289858283/…

标签: python hardware webcam sensors


【解决方案1】:

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

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

如果您没有 kinnect 相机(或不想要)。 基本上你必须自己实现一切.. 从读取图像帧(一帧一帧)、分析 3 维运动或仅选择闪电不会有太大差异的区域并将其用作“固定”点来读取方向运动的所有内容。

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

【讨论】:

    【解决方案2】:

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

    您将找到一些教程和代码示例,它们将帮助您编写人脸检测/跟踪软件,例如:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-13
      • 2013-08-25
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多