0

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

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);
4

1 回答 1

0

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

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

于 2017-05-12T06:48:57.860 回答