深度データの異なるマッピングのように見えます。
あなたは:: CVにlibfreenectデータを入れてマットを試してみて、それを拡張することができます
const float scaleFactor = 0.05f;
depth.convertTo(depthMat8UC1, CV_8UC1, scaleFactor);
imshow("depth gray",depthMat8UC1);
また、この記事とJETSON TK1にbuilding OpenNI2にチェックアウトすることができます。 OpenNIの設定と作業が完了したら、ソースからOpenCVをコンパイルして、WITH_OPENNI
をcmake
に設定してください。その後あなたがOpenCVの中に直接奥行きデータをつかむことができる必要があります:
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
using namespace cv;
using namespace std;
const float scaleFactor = 0.05f;
int main(){
cout << "opening device(s)" << endl;
VideoCapture sensor;
sensor.open(CV_CAP_OPENNI);
if(!sensor.isOpened()){
cout << "Can not open capture object 1." << endl;
return -1;
}
for(;;){
Mat depth,depthScaled;
if(!sensor.grab()){
cout << "Sensor1 can not grab images." << endl;
return -1;
}else if(sensor.retrieve(depth, CV_CAP_OPENNI_DEPTH_MAP)) {
depth.convertTo(depthScaled, CV_8UC1, scaleFactor);
imshow("depth",depth);
imshow("depth scaled",depthScaled);
}
if(waitKey(30) == 27) break;
}
}