【问题标题】:MATLAB -Draw a rectangle ROI on a video inputMATLAB - 在视频输入上绘制一个矩形 ROI
【发布时间】:2016-12-20 00:24:29
【问题描述】:

如何在视频上指定/设置/定义可见的感兴趣区域,然后在该感兴趣区域内执行所有处理。像这样的:

(来源:https://www.youtube.com/watch?v=IPmG30byCyc

如您所见,从检测到跟踪的所有处理都发生在 ROI 内。我希望实现相同的设置。

到目前为止,我所做的只是遍历视频输入并将其显示在视频播放器中:

reader = vision.VideoFileReader('rotatedjustright.mp4');
viewer = vision.VideoPlayer;
while ~isDone(reader)

    I = step(reader);
    step(viewer,I);

end

我猜想在循环内的某个地方指定了 ROI?那么从背景扣除到跟踪的所有处理都将在内部进行?

【问题讨论】:

    标签: matlab video image-processing


    【解决方案1】:

    一个起点是读取单个帧,然后绘制一个 ROI;从这里你可以创建一个掩码(矩阵:1=ROI 0~ROI)。

    然后可以将此蒙版点乘到每一帧,以删除 ROI 之外的所有内容。然后继续处理。

    更高级的方法可以包括通过变换和校正旋转来不扭曲 ROI,然后裁剪掉不需要的区域,只留下矩形 ROI。

    【讨论】:

    • 感谢您的概念 :) 但我更多的是询问如何在单帧中设置 ROI 然后将其点乘到每一帧的代码。在设置 ROI(roipoly、impoly imfreehand、imrect)的众多方式/功能中,哪一种更适合我的目标?而且我想保留整个图像帧而不裁剪任何内容。只是会有一个以矩形框为界的 ROI,所有处理都将在视频中进行
    • 你看过mathworks.com/help/vision/ref/trainingimagelabeler-app.html 吗?一些计算机视觉函数(例如,参见 detectMSERFeatures)支持 ROI 输入,您可以在其中指定函数在其中运行的 ROI。这根本不会让您裁剪图像,而只会将处理限制在您指定的 ROI 中。
    • 我会看看这个^
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    相关资源
    最近更新 更多