1

処理用のSimpleopenniライブラリとともに、openni2.2、nite2.2、およびkinect SDK 1.6をインストールしました。赤外線画像以外はすべて正常に動作しています - 単にそこにありません。同時に深度画像をはっきりと見ることができるので、これは本当に奇妙です(そして、深度画像は論理的にインフラカメラとプロジェクターが動作する必要があります)。では、ドライバーまたはソフトウェアに問題があると思いますか? Kinect を赤外線カメラとして使用したいと考えています。以下にテストコードを添付してください。

/* --------------------------------------------------------------------------
 * SimpleOpenNI IR Test
 * --------------------------------------------------------------------------
 * Processing Wrapper for the OpenNI/Kinect library
 * http://code.google.com/p/simple-openni
 * --------------------------------------------------------------------------
 * prog:  Max Rheiner / Interaction Design / zhdk / http://iad.zhdk.ch/
 * date:  02/16/2011 (m/d/y)
 * ----------------------------------------------------------------------------
 */

import SimpleOpenNI.*;


SimpleOpenNI  context;

void setup()
{
  context = new SimpleOpenNI(this);

  // enable depthMap generation 
  if(context.enableDepth() == false)
  {
     println("Can't open the depthMap, maybe the camera is not connected!"); 
     exit();
     return;
  }

  // enable ir generation
  if(context.enableIR() == false)
  {
     println("Can't open the depthMap, maybe the camera is not connected!"); 
     exit();
     return;
  }

  background(200,0,0);
  size(context.depthWidth() + context.irWidth() + 10, context.depthHeight()); 
}

void draw()
{
  // update the cam
  context.update();

  // draw depthImageMap
  image(context.depthImage(),0,0);

  // draw irImageMap
  image(context.irImage(),context.depthWidth() + 10,0);
}
4

4 に答える 4

2

これは仕事をします:

context.enableIR(1,1,1);
于 2014-04-18T20:01:12.730 に答える
0

user3550091 そうです!参考までに、私の完全な作業コード (Processing+OpenNI) を次に示します。

import SimpleOpenNI.*;
SimpleOpenNI  context;
void setup(){
  size(640 * 2 + 10, 480);
  context = new SimpleOpenNI(this);
  if(context.isInit() == false){
     println("fail"); 
     exit();
     return;
  }
  context.enableDepth();

  // enable ir generation
  //context.enableIR(); old line 
  context.enableIR(1,1,1); //new line

  background(200,0,0);
}

void draw(){
  context.update();
  image(context.depthImage(),context.depthWidth() + 10,0);

  image(context.irImage(),0,0);
}
于 2014-06-24T11:09:22.467 に答える
0

赤外線ストリームをキャプチャできますが、それを見ることはできませんか?

次に、問題が発生する可能性がありますRANGE([0, 255] にあるはずです)。

この問題は Python と C++ で発生しました。配列を範囲 (最大 - 最小) で割り、すべてのエントリに 255 を掛けることで解決しました。

于 2014-06-04T00:07:51.190 に答える