【问题标题】:Replacing detected object in a frame with an image.(imageProcessing)用图像替换帧中检测到的对象。(图像处理)
【发布时间】:2015-06-29 22:59:25
【问题描述】:

概述:

我正在从事一个视频创作项目。我使用的技术有:imageMagick、php、ffmpeg。

当前状态:

目前,该项目能够使用图像和文本以及很少的基本过渡来创建视频。我这样做的方式是使用 imagemagick 使用输入图像(其中包含过渡效果)创建 gif,然后将所有 gif 转换为视频并最后将视频连接在一起。

下一步行动(我的问题):

我现在准备把它提升到一个新的水平。所以,我所拥有的是一个视频(1920x1080),其中有一些白帧(1280x720),每帧都在不断变化。我想用我希望使用的一些图像(1280x720)替换出现在视频某些帧中的那些白帧。请在此处查看图片,您会有所了解:这些只是我视频中的两帧。如果你能仔细观察,图像会发生变化(空白不是恒定的)。

预期:

所以,我想用我自己的一张图片来填充这些空白。如果这种情况仅适用于一帧,我可以使用 ffmpeg 将图像覆盖在确切的宽度和高度上。但是这里的空白不是固定的,并且在所有帧中都在不断移动,并且有很多帧。因此,我正在寻找诸如 opencv 之类的技术或其他可用于在视频或一组帧中进行对象检测的技术,并将检测到的区域替换为其他图像。

我只需要一脚。因此,如果有人已经从事过类似的工作,请建议我可以使用什么技术。提前致谢。

【问题讨论】:

    标签: php image image-processing ffmpeg


    【解决方案1】:

    这完全取决于你可以假设什么:

    如果您可以安全地假设您的矩形边界永远不会以某种方式被遮挡(隐藏),您可以尝试在图像中找到边缘(如 OpenCV 的 Canny 边缘),然后寻找矩形形状(形成弯曲矩形的角,或非常流行的霍夫线)。

    如果您要查找的矩形始终为白色,您可以在 HSV 等色彩空间中对图像进行阈值处理以查找最大值(HSV 中的 V ~ 亮度),然后在二进制图像中搜索矩形形状。

    如果您的角落被遮挡,有时您必须对图像进行一些调整,例如形态学操作(“增长和收缩”二进制阈值图像),那么霍夫线可以解决问题。

    请注意,此答案假定一旦您知道矩形在哪里,“您就完成了”,您只需用自定义内容覆盖矩形。 我也不检查任何时间连续性:您的视频帧可能会根据矩形的逐帧外观跳来跳去。你必须包括一些关于以前职位的知识。

    【讨论】:

    • 这当然只是对您可能需要的想法的快速回顾,就像您所说的那样 ^^
    猜你喜欢
    • 2018-06-16
    • 2020-05-25
    • 2013-04-27
    • 1970-01-01
    • 2012-06-05
    • 2019-07-13
    相关资源
    最近更新 更多