我是 Matlab 和 Kinect 编程的新手。我已经设法通过我的代码的 162 行的第 155 行,但现在我卡住了,希望得到任何帮助。
我正在尝试记录颜色流和深度流,以便以后可以对它们进行图像处理,而不必每次要测试时都进行实时流式传输。我已经管理了颜色流,但深度流似乎更困难。
我收到“使用 hgMovie 时出错。电影 cdata 必须是 uint8 数组类型”
我试过使用 line depthMov=uint8(depthMov); 正如一个论坛所建议的那样,但现在我得到“无法从 struct 转换为 uint8”还有其他建议吗?以下是我尝试使用的代码片段。
depthVid=videoinput('kinect',2,'Depth_640x480');
set(depthVid, 'LoggingMode', 'Disk&Memory');
depthLogfile = VideoWriter('depthlogfile.mj2'), 'Motion JPEG 200');
depthVid.DiskLogger = depthLogfile;
triggerconfig(depthVid, 'manual');
set(depthVid, 'FramesPerTrigger',inf);
start(depthVid);
pause(20);
trigger(depthVid);
[depthFrameData, depthTimeData, depthMetaData] = getdata(depthVid);
stop(depthVid)
depthPlayback=Video('depthlogfile.mj2');
dFrames=depthPlayback.NumberOfFrames;
dheight=depthPlayback.Height;
dWidth=depthPlayback.Width;
depthMov(1:dFrames)=struct('cdata,zeros(dHeight,dWidth,3,'unit8'),'colormap',[]);
for k = 1:dFrames
depthMov(k).cdata=read(depthPlayback,k);
end
hf2 = figure;
set (hf2,'position',[150 150 dWidth dHeight])
%depthMov = uint(depthMov); % failed conversion
movie(hf2,depthMov,1,depthPlayback.FrameRate); %Line I am getting the error
感谢您提前提供任何帮助或建议。