【问题标题】:Matlab Kinect Depth ImagingMatlab Kinect 深度成像
【发布时间】:2017-05-10 08:52:35
【问题描述】:

我正在使用 kinect 相机并尝试使用 ptCloud 方法结合 RGB 和深度传感器来显示真实的深度图像。但是,仅使用初始设置,我的图像就被毁容了,缺少相关信息,无论如何要改进它以捕获更多数据。我还附上了我的意思的图片。任何帮助都会非常感谢您!

colorDevice = imaq.VideoDevice('kinect',1)
depthDevice = imaq.VideoDevice('kinect',2)
step(colorDevice);
step(depthDevice);
colorImage = step(colorDevice);`enter code here`
depthImage = step(depthDevice);
gridstep = 0.1;
ptCloud = pcfromkinect(depthDevice,depthImage,colorImage);

player = pcplayer(ptCloud.XLimits,ptCloud.YLimits,ptCloud.ZLimits,...
    'VerticalAxis','y','VerticalAxisDir','down');

xlabel(player.Axes,'X (m)');
ylabel(player.Axes,'Y (m)');
zlabel(player.Axes,'Z (m)');
for i = 1:1000    
   colorImage = step(colorDevice);  
   depthImage = step(depthDevice);

   ptCloud = pcfromkinect(depthDevice,depthImage,colorImage);
   ptCloudOut = pcdenoise(ptCloud);
   view(player,ptCloudOut);
end

release(colorDevice);
release(depthDevice);

【问题讨论】:

  • 缺少什么信息?
  • 它没有丢失任何信息,我只是想改进它,以便它显示来自设备的更多数据,因为它丢失了大部分数据,正如您从图像中看到的那样

标签: matlab kinect depth-testing


【解决方案1】:

从图像的外观来看,您试图捕捉一个中间有电视屏幕的橱柜。在这种情况下,电视屏幕实际上会吸收传感器发出的红外线或以长角/多次反射等方式反射它。因此,Kinect 无法捕获深度数据。此外,由于当您想在点云顶部显示 RGB 数据时,它会尝试将两者对齐并拒绝任何与 RGB 图像像素不对齐的深度数据。

因此,为了改善深度数据采集,您可以注意场景中没有反射表面,如屏幕、镜子等。此外,尝试在没有 RGB 叠加的情况下显示深度数据,这有望改善显示的点云。

【讨论】:

    猜你喜欢
    • 2011-09-13
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 2014-11-03
    • 2013-11-24
    • 1970-01-01
    相关资源
    最近更新 更多