【问题标题】:Processing! Kinect send is position x in x seconds加工! Kinect 发送是 x 秒内的位置 x
【发布时间】:2013-12-04 16:06:29
【问题描述】:

我在这里需要一点帮助。 我有一个使用 SimpleOpenNi 库进行处理的 kinect,例如,我只希望 kinect 在 2 秒内仅发送 2 个骨架的位置。如果位置与之前发送的相同,则不执行操作,这可能吗? 谢谢你

【问题讨论】:

    标签: java kinect processing simple-openni


    【解决方案1】:

    是的,您必须在“发送”和另一个之间设置延迟。

    在您正在读取值的线程中:

    while(..) {
      Thread.sleep(2000); /* delay 2000ms => 2s */
      /* read value */
      /* if not the first iteration, save value in temp array */
      /* else check for each bone:  oldPos - epsilon < newPos < oldPos + epsilon */
    }
    

    要检查以前的位置是否相同,您必须将骨架位置保存在临时变量中并检查新值是否相同,可能是某个特定的邻域。

    遗憾的是没有其他解决方案,因为在配置文件中您只能设置两种 FPS(here 有一个讨论):

    • 用于彩色图像
      FPS = 15 @ 1280x1024
      FPS = 30 @ 640x480

    • 对于深度 FPS = 30 @ 640x480

    在您的配置文件的标签 MapOutputMode 中:

    <OpenNI>
      <Licenses>
        <License vendor="PrimeSense" key="0KOIk2JeIBYClPWVnMoRKn5cdY4="/>
      </Licenses>
      <Log writeToConsole="false" writeToFile="false">
        <LogLevel value="3"/>
        <Masks>
          <Mask name="ALL" on="true"/>
        </Masks>
        <Dumps></Dumps>
      </Log>
      <ProductionNodes>
        <Node type="Depth" name="Depth1">
          <Configuration>
            <MapOutputMode xRes="640" yRes="480" FPS="30" />
            <Mirror on="false"/>
          </Configuration>
        </Node>
        <Node type="User"/>
        <Node type="Gesture"/>
        <Node type="Hands"/>
      </ProductionNodes>
    </OpenNI>
    

    【讨论】:

    • 嗯,我明白你在说什么,但是 kinect 会不断发送骨架信息,这只是一个命令,所以我不知道如何在那个 casa 中设置延迟,这是我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多