Я использую Microsoft kinect v1 в MATLAB и хочу получить данные о глубине для каждого пикселя в метрах.
Я не уверен, как получить эти данные, потому что я получаю uint16 и насколько я прочиталв том, что он обеспечивает глубину только в 13 битах, так как мне получить эти 13 битов и выполнить какое-то преобразование, чтобы получить глубину точно в метрах.
Я много об этом искал, но не смог прийти к какому-либо заключению.
Kinectinfo = imaqhwinfo('kinect');
colorinfo = Kinectinfo.DeviceInfo(1);
depthinfo = Kinectinfo.DeviceInfo(2);
colorvid = videoinput('kinect',1);
depthvid = videoinput('kinect',2);
srcDepth = getselectedsource(depthvid);
% Set the frames per trigger for both devices to 1.
colorvid.FramesPerTrigger = 1;
depthvid.FramesPerTrigger = 1;
% Set the trigger repeat for both devices to 200, in order to acquire 201 frames from both the color sensor and the depth sensor.
colorvid.TriggerRepeat = 200;
depthvid.TriggerRepeat = 200;
%Configure the camera for manual triggering for both sensors.
triggerconfig([colorvid depthvid],'manual');
% Start both video objects.
start([colorvid depthvid]);
%Trigger the devices, then get the acquired data.
% Trigger 200 times to get the frames.
for i = 1:200
% Trigger both objects.
trigger([colorvid depthvid])
% Get the acquired frames and metadata.
[imgColor, ts_color, metaData_Color] = getdata(colorvid);
[imgDepth, ts_depth, metaData_Depth] = getdata(depthvid);
end
[NYU Depth and RGB image][1]
[Histogram of swaped Raw Depth image][2]
[Histogram of Raw Depth Image][3]
Я хотел бы иметь какой-нибудь код для конвертации или любой SDK, который предоставляет мне счетчики в matlab.
Большое спасибо.