在视频中的移动物体上叠加图像(增强现实/OpenCv)

2023-11-22

我在用FFmpeg通过此命令在视频上叠加图像/表情符号 -

"-i "+inputfilePath+" -filter_complex "+"[0][1]overlay=enable='between(t,"+startTime+","+endTime+")'[v1]"+" -map [v0] -map 0:a "+OutputfilePath;  

但上述命令仅将图像覆盖在视频上并保持静止。

In Instagram and Snapchat有新的pin特征。我想要完全相同的,例如blur在移动的面孔上或如下面的视频所示 -

enter image description here

这是链接.

是否可以通过FFmpeg?

我认为有人OPENCV or 增强现实知识可以在这方面提供帮助。它安静类似于AR因为我们需要在视频/实时摄像头上准确地移动/缩放表情符号。


基于覆盖规范:https://ffmpeg.org/ffmpeg-filters.html#overlay-1

当您指定时间间隔时,它只会在该时间间隔发生:

例如,启用模糊滤镜 (smartblur) 从 10 秒到 3 分钟:

smartblur = enable='between(t,10,3*60)'

您需要做的是将图像覆盖在特定坐标处,例如以下固定 x 和 y 处的图像:

ffmpeg -i rtsp://[host]:[port] -i x.png -filter_complex 'overlay=10:main_h-overlay_h-10' http://[host]:[post]/output.ogg

现在的想法是根据视频的当前帧计算这些坐标,并强制过滤器在每一帧上使用更改后的坐标。 例如基于时间:FFmpeg 将覆盖从一个像素坐标移动到另一个像素坐标

ffmpeg -i bg.mp4 -i fg.mkv -filter_complex \
"[0:v][1:v]overlay=enable='between=(t,10,20)':x=720+t*28:y=t*10[out]" \
-map "[out]" output.mkv

或者使用其他一些表达方式:http://ffmpeg.org/ffmpeg-utils.html#Expression-Evaluation

不幸的是,这需要在使用猫移动头部或画笔表示 x 和 y 的有限表达式之前找到一个公式。它可以是线性的、三角函数的或其他与时间相关的函数:

x=sin(t)

自由移动并不总是可能的。

为了更精确地查找对象坐标来覆盖某些内容,应该可以提供您自己的过滤器(ffmpeg 是开源的),类似于覆盖:https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/vf_overlay.c

根据外部文件计算 x 和 y(如果是静态视频,您可以在所有时间转储所有 x 和 y)或进行一些图像处理以查找特定区域。

希望它能给您一个想法和前进的方向。 这是一个非常有趣的功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在视频中的移动物体上叠加图像(增强现实/OpenCv) 的相关文章

  • 仅获取图像中的外部轮廓

    我有这段代码 可以在图像中绘制轮廓 但我只需要外部轮廓 import cv2 import numpy as np camino C Users Usuario Documents Deteccion de Objetos 123 jpg
  • 如何使用从 Snapchat 收到的 AccessToken 获取 UserData?

    按照 snapkit 登录文档 WEB 我实现了服务器端代码 并且能够获取用户的访问令牌 第 2 5 节 位于https docs snapchat com docs tutorials login kit web https docs s
  • 创建 OpenCV 的 mouseCallback 函数的基于类的实现时遇到问题

    正如标题所示 我在基于类的 C 结构中实现 OpenCV 的 mouseCallback 函数时遇到了一些麻烦 请允许我解释一下 我定义了一个名为 BriskMatching 的类 在其中创建了一个名为 mouseCallback 的成员函
  • 从图像坐标获取对象的世界坐标

    I have been following this http docs opencv org modules calib3d doc camera calibration and 3d reconstruction html docume
  • 从包含带边框的表格的图像中提取表格结构

    我正在尝试提取下表中的单元格位置 应用自适应阈值处理后 我能够获得细胞位置周围的轮廓 并且 HoughLines 获得垂直和水平结构元素 这是我的代码 img cv2 imread os path join img path file im
  • OpenCV 跟踪器:模型未在函数 init 中初始化

    在视频的第一帧 我运行一个对象检测器 它返回对象的边界框 如下所示
  • 如何仅在使用 ffmpeg 添加相同速度的分离音频流时更改视频速度?

    我正在使用 ffmpeg 作为视频过滤器 但是 当我改变视频速度时 我遇到了问题 音频比视频长 ffmpeg i INPUT mp4 filter v setpts 0 5 PTS shortest y preset ultrafast O
  • 在 macOS 上为 MoviePy 安装 ffmpeg 失败并出现 SSL 错误

    我正在尝试编写一个 Python 程序 在 Mac OS 10 11 16 上使用 MoviePy 将 MP4 文件转换为 GIF 我用 import moviepy editor as mp 我收到一条错误消息 说我需要打电话imagei
  • 如何使用 opencv.omnidir 模块对鱼眼图像进行去扭曲

    我正在尝试使用全向模块 http docs opencv org trunk db dd2 namespacecv 1 1omnidir html用于对鱼眼图像进行扭曲处理Python 我正在尝试适应这一点C 教程 http docs op
  • 如何在 cv2.VideoWriter 中使用 FPS 参数?

    好的 所以我正在制作视频 我想确切地知道如何使用 FPS 参数 它是一个浮点数 所以我假设这是我想要的每帧之间的间隔 你能给个例子吗 我只想知道视频会如何随着 FPS 参数值的变化而变化 因为我制作的视频现在太快了 谢谢 确实只是这样 fr
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域
  • VideoCapture.read() 返回过去的图像

    我在跑python3 6 with openCV on the Raspberry pi OS is Raspbian 代码的大致结构如下 The image以时间间隔 3 5 分钟 捕获 被捕获image在函数中处理并返回度量 精度的种类
  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • Python:Urllib2 和 OpenCV

    我有一个程序 可以将图像保存在本地目录中 然后从该目录中读取图像 但我不想保存图像 我想直接从url读取它 这是我的代码 import cv2 cv as cv import urllib2 url http cache2 allposte
  • Bash 脚本:自动为 mpeg-dash 进行 ffmpeg 编码

    我正在编写一个 bash 文件来创建视频编码和串联 以供 dash 实时流媒体使用 基本上 它读取输入视频文件夹 将所有视频编码为三种分辨率格式 然后将它们连接起来创建三个适应集 DIAGRAM 该脚本检查 fps 一致性 如果输入不是 1
  • opencv水印周围的轮廓

    我想在图像中的水印周围画一个框 我已经提取了水印并找到了轮廓 但是 不会在水印周围绘制轮廓 轮廓是在我的整个图像上绘制的 请帮我提供正确的代码 轮廓坐标的输出为 array 0 0 0 634 450 634 450 0 dtype int
  • 两个图像之间的视频变形,FFMPEG/Minterpolate

    我正在尝试在 Ubuntu Linux 上的 bash 脚本中使用两个帧 png 图像 和 ffmpeg 的 minterpolate 过滤器制作一个快速且简单的变形视频 目的是稍后使用变形作为不同视频编辑器中相似视频之间的过渡 它适用于
  • 如何将 MP3 音频文件读入 numpy 数组/将 numpy 数组保存到 MP3?

    有没有办法从 MP3 音频文件中读取 写入 MP3 音频文件numpy具有类似 API 的数组scipy io wavfile read https docs scipy org doc scipy 0 14 0 reference gen
  • 如何检测斑点并将其裁剪成 png 文件?

    我一直在开发一个网络应用程序 我陷入了一个有问题的问题 我会尝试解释我想要做什么 在这里您看到第一个大图像 其中有绿色形状 我想要做的是将这些形状裁剪成不同的 png 文件 并使它们的背景透明 就像大图像下面的示例裁剪图像一样 第一张图像将
  • 如何加速 svm.predict?

    我正在编写一个滑动窗口来提取特征并将其输入到 CvSVM 的预测函数中 然而 我偶然发现 svm predict 函数相对较慢 基本上 窗口以固定的步幅长度在图像比例上滑动穿过图像 遍历图像加上提取每个图像特征的速度 窗口大约需要 1000

随机推荐

  • 使用库 mouse() 中的估算数据集来拟合 R 中的多级模型

    我是包装新手mice但我试图从 R 中估算 5 个数据集popmis然后拟合一个lmer model with 每一个和最后pool 穿过他们 我觉得pool 函数于mice 不适用于lmer 来电来自lme4包 对吗 如果是这样的话 有没
  • 如何获取用户的所有 github `PushEvents` 列表

    我可以查看特定用户的所有事件 例如这里是我的 https api github com users arasbm events 但我只对特定类型的事件感兴趣 type PushEvent 如何获取这些数据而不必处理所有事件的列表 这可能很慢
  • 关于 cudaMemcpyAsync 函数

    我有一些疑问 最近在用CUDA做一个程序 在我的程序中 Host 上有一个用 std map string vector int 编程的大数据 通过使用这些数据 一些向量 int 被复制到GPU全局内存并在GPU上处理 处理后 在 GPU
  • 逆透视 SQL 表中的所有列

    我有一个包含 30 列的表 我想轻松地取消透视所有列 我知道我可以使用这个策略 SELECT col value INTO New Table FROM SELECT FROM Test Data p UNPIVOT value FOR c
  • 在页面加载时使用 javascript(无 jquery)自行调整窗口大小并居中

    这不是我们通常会做的事情 但我们正在尝试将视频加载到由 clickTag 来自横幅广告 打开的空白窗口中 并使其尽可能感觉像模态窗口 是否可以使用javascript自行调整clickTag打开的空白窗口的大小并将其置于屏幕中央 我们无法对
  • Flutter Facebook 网页登录

    我已经尝试过Flutter Facebook 登录包 它在 android 中工作正常 但在 web 中我没有被重定向到 Facebook 进行身份验证 尝试过这个软件包的人可以帮忙吗 该插件不支持网页 但有人更新了代码以支持 romulo
  • 从列表集合中删除项目而不删除

    我正在制作一个集合 我需要从集合中删除一项并使用过滤 删除的集合 这是我的代码 public class Emp public int Id get set public string Name get set List
  • 在视频 FFmpeg 上添加图像叠加

    我有一个视频 test mp4 和一个图像 test png test png是一个黑色图像 中心有一个透明的 洞 我想使用 FFmpeg 显示test png在视频上方 所以我只能看到一圈视频 如果可能的话 调整大小test png适应视
  • USSD 消息中的最大字符数是多少?

    据我了解 USSD 消息由 160 个字节组成 对于 7 位数据编码方案 最大字符数为 160 8 7 即 182 个字符 我不清楚 UCS2 编码的最大字符数是多少 通常情况下 它会类似于 160 2 但我对此有一些复杂的信息 USSD
  • SSO - SAML,成功登录后将用户重定向到指定的登录页面

    我正在实施 SSO 其中我是身份提供商 现在我能够成功登录服务提供商 但它带我到主页 我想在发布响应时指定着陆页 URL 进行了很多搜索 但找不到任何令人信服的东西 不太清楚 SAML 响应的哪个元素带有登陆页面 URL 或者是我必须指定的
  • r - 投资组合优化 -solve.QP - 约束不一致

    我正在尝试使用solve QP来解决投资组合优化问题 二次问题 总计 3 项资产 有4个限制 权重之和等于 1 投资组合预期回报率为 5 2 每项资产权重大于0 每个资产权重小于 0 5 Dmat 是协方差矩阵 Dmat lt matrix
  • 使用 HTTPBuilder POST -> NullPointerException?

    我正在尝试发出一个简单的 HTTP POST 请求 但我不知道为什么以下失败 我尝试按照示例进行操作here 我不明白我哪里错了 例外 java lang NullPointerException at groovyx net http H
  • $(document).ready() 之后立即调用什么 jQuery 事件?

    我生成了很多 HTML document ready 我有一个简单的窗口系统 但它不仅是在 document ready 还有一些 HTML 元素 不同的 JS 文件将内容放入 document ready 我希望我的窗口系统在之后生成 d
  • SQL Max(日期) 不带分组依据

    我有下表 MemberID ServDate 001 12 12 2015 001 12 13 2015 001 12 15 2015 002 11 30 2015 002 12 04 2015 我想让它看起来像这样 MemberID Se
  • 为什么从 data.table 中选择列会产生副本?

    看来从 data table 中选择列 data table结果产生基础向量的副本 我说的是非常简单的列选择 按名称 没有要计算的表达式j并且没有要子集的行i 更奇怪的是 data frame 中的列子集似乎没有创建任何副本 我正在使用 d
  • .click()方法,浏览器支持

    我想使用js方法 click 如下 document getElementById id click 但由于它的工作至关重要 我想知道哪些浏览器支持 click 方法有 我遇到的唯一一个不支持的浏览器 click 是Safari Safar
  • 如何向现有通知负载添加属性?

    在 Rails 通知中 我订阅了 process action action controller 并且想向有效负载添加更多属性 我怎样才能做到这一点 我尝试过使用append info to payload 但这似乎没有任何作用 modu
  • $.each() jQuery 中的索引起始编号

    如何启动 jQuery each 索引从 1 而不是 0 开始 我正在使用 each 函数来填充选择框 所以在这里 我想从 1 开始填充选择框中的选项 因此 根据条件 我想在第一个索引 即 0 中添加选项 each So try each
  • 无法访问 JD-Eclipse 站点:http://java.decompiler.free.fr/?q=jdeclipse [关闭]

    Closed 这个问题是无关 目前不接受答案 我无法访问java反编译器站点 http java decompiler free fr q jdeclipse 它显示 403 错误 Erreur 403 拒绝 de Traitement d
  • 在视频中的移动物体上叠加图像(增强现实/OpenCv)

    我在用FFmpeg通过此命令在视频上叠加图像 表情符号 i inputfilePath filter complex 0 1 overlay enable between t startTime endTime v1 map v0 map