Matlab Kinect Depth Imaging

时间:2017-05-10 08:52:35

标签: matlab kinect depth-testing

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

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

1 个答案:

答案 0 :(得分:0)

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

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