Processing 处理中的Kinect深度直方图

Processing 处理中的Kinect深度直方图,processing,kinect,histogram,Processing,Kinect,Histogram,我正在尝试创建一个直方图,显示Kinect扫描的距离与它们的出现次数。我已经修改了直方图示例代码来创建深度直方图,但它当前在深度图像宽度上多次显示每个像素的深度(从左到右)。 我要做的是对深度信息进行重新排序,使其在x轴上的范围从最低值(不是0)到最高值,并在y轴上显示它们的引用。我正在使用处理,所以我不确定这是否是发布的正确站点,但我在发布论坛上尝试过,没有得到任何帮助。如果有人能告诉我哪里出了问题,那就太棒了。下面是我当前的代码,可以找到我当前输出的屏幕截图 导入SimplePenni.*;

我正在尝试创建一个直方图,显示Kinect扫描的距离与它们的出现次数。我已经修改了直方图示例代码来创建深度直方图,但它当前在深度图像宽度上多次显示每个像素的深度(从左到右)。 我要做的是对深度信息进行重新排序,使其在x轴上的范围从最低值(不是0)到最高值,并在y轴上显示它们的引用。我正在使用处理,所以我不确定这是否是发布的正确站点,但我在发布论坛上尝试过,没有得到任何帮助。如果有人能告诉我哪里出了问题,那就太棒了。下面是我当前的代码,可以找到我当前输出的屏幕截图

导入SimplePenni.*;
simplepenni-kinect;
无效设置(){
规模(1200、580);
kinect=新的SimplePenni(本);
kinect.enableDepth();
}
无效提款(){
kinect.update();
PImage depthImage=kinect.depthImage();
图像(深度图像,11,0);
int[]depthValues=kinect.depthMap();
int[]hist=新int[716800];
对于(int x=11;x
我想你在问两个问题

如何使直方图从0-N开始:
使用处理对数组进行排序

hist = sort(hist);  // sorts your array numerically
如何获取直方图以填充屏幕:
我不完全确定它为什么会画两次,但我认为您可以对代码进行一些清理

// how far apart are the bars - set based on screen dimensions
int barSpacing = width / hist.length; 

for (int i=0; i<hist.length; i++) {

  // get value and map into usable range (note 10 not 0 for min)
  int h = int(map(hist[i], 0,histMax, 10,height)); 

  // set x position onscreen
  int x = i * barSpacing;

  // draw the bar
  line(x,height, x,height-h);
}
//条形图的间距-根据屏幕尺寸设置
int barSpacing=宽度/历史长度;

对于(int i=0;iHi,我以前尝试过使用sort函数,但没有从中获得多少运气。我刚刚尝试过您的方法,结果输出是一个深度图像,每隔几秒钟显示一帧,深度图像左侧有一条细线。我想问题可能是,由于Kinect c,直方图数据不断刷新即时扫描新的深度值。你知道我如何捕获一帧的值吗?谢谢你的帮助
// how far apart are the bars - set based on screen dimensions
int barSpacing = width / hist.length; 

for (int i=0; i<hist.length; i++) {

  // get value and map into usable range (note 10 not 0 for min)
  int h = int(map(hist[i], 0,histMax, 10,height)); 

  // set x position onscreen
  int x = i * barSpacing;

  // draw the bar
  line(x,height, x,height-h);
}