opencv 更新单应性矩阵以适合双倍大小的图像

2024-01-23

我正在使用光流进行视频稳定。为了使 calcOpticalFlowPyrLK 更快地工作,我将原始图像缩小了 2 倍并在其上运行该函数。

如何修改单应矩阵(通过 findHomography 检索)以便能够扭曲透视原始的较大图像。


这有点晚了,你的答案很好,但我有一点要补充。我不喜欢将像 getPerspectiveTransform 这样的函数视为理所当然。在这种情况下,自己制作矩阵很容易。图像缩小到 2 的幂很容易。假设您有一个点,并且想要将其移动到分辨率两倍的图像上。

float newx = (oldx+.5)*2 - .5;
float newy = (oldy+.5)*2 - .5;

相反,要转到分辨率一半的图像......

float newx = (oldx+.5)/2 - .5;
float newy = (oldy+.5)/2 - .5;

如果需要的话,给自己画一个图表并说服自己它有效,记住 0 索引。不要考虑让您的变换适用于其他分辨率,而是考虑将每个点移动到变换的分辨率,然后使用您的变换,然后将其移回来。幸运的是,您可以在 1 个矩阵中完成所有这些工作,我们只需要构建该矩阵!首先为三个步骤中的每一个建立一个矩阵

//move point to an image of half resolution, note it is equivalent to the above equation
project_down=(.5,0,-.25,
               0,.5,-.25,
               0, 0,  1)

//move point to an image of twice resolution, these are inverses of one another
project_up=(2,0,.5,
            0,2,.5,
            0, 0,1)

只需将它们组合起来即可进行最终的转换

final_transform = [project_up][your_homography][project_down];

好处是对于任何给定的单应性,您只需执行一次此操作。这应该与 getPerspectiveTransform 的工作方式相同(并且可能运行得更快)。希望理解这一点能够帮助您处理可能遇到的有关图像分辨率更改的其他问题。

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

opencv 更新单应性矩阵以适合双倍大小的图像 的相关文章

随机推荐

  • angularJS element.on 回调和作用域.$apply

    在此示例中 我有一个带有附加指令的输入 该指令旨在在输入旁边显示消息 还有另一个输入和一个用于添加消息的按钮 显示一些消息后 关注带有附加指令的输入应该会清除消息 http jsfiddle net viro WBqxf http jsfi
  • 使用 PHP 创建目录中所有类的实例

    我有一个包含多个 PHP 文件的目录 这些文件由与文件同名的类组成 Sample php的班级将被称为Sample 每个类都有一个名为的函数OnCall 如何在我的目录中创建每个类的实例并执行它们的所有OnCall s 我无法手动完成 sa
  • 为什么 ASP.NET Core 本地化不起作用

    我创建了一个空项目 启动 cs public void ConfigureServices IServiceCollection services services AddLocalization s gt s ResourcesPath
  • 如何向 MKPointAnnotation 添加按钮?

    我刚刚在尝试向注释点添加详细信息按钮时陷入困境 不幸的是我不知道该怎么做 有人可以帮我吗 The image below presents what I d like to achieve Thanks MapKit 视图控制器 impor
  • 重构复杂的嵌套数组

    我有一个像这样的数组 var my array 2 9 10 5 10 11 4 11 9 1 19 2 41 10 7 17 3 0 11 4 18 5 中的数组my array包括另外两个数组 第一个数组不是必需的 但看看第二个 mya
  • 在 prolog 中生成从 N 到 1 的数字列表

    我正在尝试生成从 N 到 1 的数字列表 而不使用任何内置谓词 例如 findall 或 numlist 我究竟做错了什么 pred N H T H is N N1 is N 1 pred N1 T pred 1 我不断收到错误 超出全局堆
  • 重载决策中是否实际选择了纯虚函数?

    来自我在上一个问题中的评论 由于不能存在抽象类的实例 因此在重载解析后永远无法选择纯虚函数 明显的反应是 abstract class a new derived class a gt pure virtual function 以及正确性
  • EditText - 文本和 EditText 行之间的间隙

    When I insert text to my EditText field the text has an abnormal gap between itself and the EditText s line Here s a pri
  • Java XPath(Apache JAXP 实现)性能

    注意 如果您也遇到此问题 请在 Apache JIRA 上投票 https issues apache org jira browse XALANJ 2540 https issues apache org jira browse XALA
  • 如何将 Android 应用本地化为印度尼西亚语

    我需要将我的应用程序本地化为印度尼西亚语言 我的应用程序的资源文件夹包含每种语言的 values 子文件夹列表 例如 values fr 文件夹 但我读到了令人困惑的信息Android 开发者文档 http developer androi
  • 当 xml 更改时,Odoo 模板页面不会更新

    刚刚为客户启动 Odoo 我在模板方面遇到了一个重大问题 一个简单的模板 有一些 div 和标题 我还有一个记录可以在主菜单中显示 当我第一次创建它时 一切正常 但是 如果我想添加或更改一些 html 这些更改不会显示在网站页面上 即使在我
  • 开源 Java CMS [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 谁能推荐一个好的java开源cms 我没有使用过任何java cms 但我使用过wordpress 环顾谷歌 我列出了 openCMS d
  • 使用 GCD 在后台创建 UIKit 对象是一种不好的做法吗?

    正如所指出的bbum https stackoverflow com users 25646 bbum here https stackoverflow com a 18463249 2707614 医生说 大多数情况下 UIKit 类只能
  • 贪心算法:区间着色

    在间隔调度中 算法是选择最早完成时间 但在间隔着色中 前者不起作用 是否有示例或解释为什么选择最早完成时间不适用于间隔着色 区间着色问题是 给定一组区间 我们想要着色 所有间隔 以便给定相同颜色的间隔不相交 目标是尽量减少使用的颜色数量 这
  • 如何在 jupyter markdown 单元格中创建新行

    md S a set of shops I a set of items M wants to get 我想在这两句话之间换一条新线 我们通常在第一个句子之后在新行之前放置 空格 但它在 Jupyter 中不起作用 我怎样才能做到这一点 我
  • 没有名为“requests”的模块 Python 3.5.0

    我需要使用requests在我的代码中 但它说它尚未安装 我收到以下错误 No module named requests 它实际上已在 python 2 7 中安装并运行 Requirement already satisfied use
  • 无法使用存储过程 pyodbc SQL SERVER 创建数据库

    我正在尝试调用一个从 pyodbc 创建数据库的存储过程 以下是代码的最小示例 import pyodbc conn pyodbc connect Driver SQL Server Server SERVERNAME Trusted Co
  • Tomcat 正在运行吗?

    有兴趣了解人们通常如何检查 Tomcat 是否在 Unix 环境上运行 我要么使用以下命令检查进程是否正在运行 ps ef grep java ps ef grep logging 或者我检查端口号是否处于活动状态 netstat a gr
  • 在 MAX(DATE) 上左连接

    我有 2 个表 交易 a 和价格 b 我想从表 b 中检索交易日期有效的价格 表a包含物品交易的历史记录 商店类型 日期 文章 表 b 包含商品价格的历史记录 商店类型 日期 文章 价格 目前我有这个 Select a Store type
  • opencv 更新单应性矩阵以适合双倍大小的图像

    我正在使用光流进行视频稳定 为了使 calcOpticalFlowPyrLK 更快地工作 我将原始图像缩小了 2 倍并在其上运行该函数 如何修改单应矩阵 通过 findHomography 检索 以便能够扭曲透视原始的较大图像 这有点晚了