我设法逐帧读取视频文件
infile= ['baseballField.avi'];
readerobj=VideoReader(infile);
groundtruth = csvread('baseballField-groundtruth.top');
for i=1:2:20
vidframe=read(readerobj,i);
imshow(vidframe);
drawnow
end
我也读过csv文件,如上所示。 csv文件的每个记录包含标记视频中每个人的值,帧的编号和人体的框坐标。
我想在每个视频帧中为每个人绘制身体边界框,覆盖在视频数据的顶部。我如何绘制这些数据?
答案 0 :(得分:0)
您可以使用内置的rectangle
功能在当前轴上绘制矩形。
imshow(vidframe);
hold on
rectangle('Position', [x,y,width,height])
作为旁注,您每次通过循环创建新图像。最好将句柄存储到图像对象,只需更新循环内图像的CData
属性。
infile= ['baseballField.avi'];
readerobj=VideoReader(infile);
groundtruth = csvread('baseballField-groundtruth.top');
vidframe = read(readerobj, 1);
him = imshow(vidframe);
hold on
hrect = rectangle('Position', pos{1});
drawnow
for k = 1:2:20
set(him, 'CData', read(readerobj, k));
set(hrect, 'Position', pos{k})
drawnow
end