在视频帧上绘制矩形

时间:2017-02-28 09:20:02

标签: matlab image-processing video-processing

我正在尝试在视频的帧上绘制一个矩形。我希望矩形出现在视频的所有帧上。由于我已经应用了“保持”,我只能在几个帧上看到我的边界框。

v = VideoReader('test.mp4');
numFrames = get(v,'NumberOfFrames');
for k=1:numFrames
    image = read(v,k);
    rectangle('Position',[0 0 100 100],'EdgeColor','r','LineWidth', 3);
    hold on;
    imshow(image);  
end

当我尝试删除保持功能时,矩形没有被绘制在框架上。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

交换imshowrectangle来电,以便imshow创建一个首先适合图像的数字。在rectangle之后使用imshow最终绘制矩形。最后,在imshow之后使用drawnow,以便刷新图形缓冲区并刷新图形。 hold on;来电之间还需要hold off;rectangle

v = VideoReader('test.mp4');
numFrames = get(v,'NumberOfFrames');
for k=1:numFrames
    image = read(v,k);
    imshow(image);  
    hold on;
    rectangle('Position',[0 0 100 100],'EdgeColor','r','LineWidth', 3);
    hold off;
    drawnow;
end