如果外部和内部参数已知,则从 2D 图像像素获取 3D 坐标

2023-11-26

我正在使用 tsai 算法进行相机校准。我得到了内在和外在矩阵,但如何从该信息重建 3D 坐标?

enter image description here

1)我可以使用高斯消元法来查找 X,Y,Z,W,然后点将 X/W 、 Y/W 、 Z/W 作为齐次系统。

2) I can use the OpenCV documentation approach:

enter image description here

我所知u, v, R , t,我可以计算X,Y,Z.

然而,这两种方法最终都会得到不正确的不同结果。

我做错了什么?


如果你有外部参数,那么你就得到了一切。这意味着您可以从外部获得单应性(也称为 CameraPose)。位姿是一个 3x4 矩阵,单应性是一个 3x3 矩阵,H定义为

                   H = K*[r1, r2, t],       //eqn 8.1, Hartley and Zisserman

with K是相机本征矩阵,r1 and r2是旋转矩阵的前两列,R; t是平移向量。

然后将所有内容标准化除以t3.

色谱柱会发生什么情况r3,我们不用它吗?不,因为它是多余的,因为它是姿势的前 2 列的叉积。

现在您已经有了单应性,请投影点。你的 2d 点是 x,y。添加 z=1,所以它们现在是 3d 的。将它们投影如下:

        p          = [x y 1];
        projection = H * p;                   //project
        projnorm   = projection / p(z);      //normalize

希望这可以帮助。

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

如果外部和内部参数已知,则从 2D 图像像素获取 3D 坐标 的相关文章

随机推荐

  • WAMP 和 pcntl_fork

    有没有办法让 pcntl fork 在 WAMP 中工作 我需要开发一个分叉解决方案并在本地进行测试 不 这是不可能的 这PCNTL扩展需要 nix 平台 现在 话虽如此 你想做什么 你能在不分叉的情况下解决它吗 Edit 启动后台进程的一
  • angularjs $http.get 获取json在服务层不起作用

    我正在开发一个 AngularJS 应用程序 作为我的 AngularJS 学习的一部分 我有控制器 从那里我调用服务层 leagueManager service teamsService function http var teams
  • Python sys.stdout.flush() 不起作用

    下面的代码应该打印从 1 到 10 中间间隔 1 秒 但是它在实际打印任何内容之前等待 10 秒 然后一次性打印所有内容 如何取消缓冲输出 import sys import time for count in range 10 sys s
  • IE8 不会下载启用了 UAC 的自定义 mime/类型的文件

    我在本地计算机 Windows 7 x64 IE8 net 3 5 C 上运行一个 net 服务 该服务将文件返回到浏览器以响应用户操作 使用 firefox 或 chrome 可以正确下载文件 并且我们的应用程序通过自定义 mime 类型
  • Python上下文管理的成员变量?

    上下文管理器定义设置 清理功能 enter and exit 惊人的 我想保留一个作为成员变量 当我的类对象超出范围时 我希望执行此清理操作 据我所知 这基本上是 C 构造函数 析构函数自动发生的行为 class Animal object
  • Laravel 全局中间件无法获取会话

    protected middleware App Http Middleware Syspoint class use Session class Syspoint echo Session get syspoint 我有一个中间件需要在每
  • 如何在 PHP 中生成随机 64 位值作为十进制字符串

    Oauth 需要一个随机 64 位无符号数字 编码为十进制格式的 ASCII 字符串 你们能帮我用 php 实现这个吗 谢谢 这是一个非常有趣的问题 如何在 PHP 中创建任意长度随机数的十进制表示 不使用可选扩展 这是解决方案 步骤一 任
  • 使用 PHP 创建电子邮件帐户

    我正在尝试使用 PHP 创建电子邮件 这是我的代码 到目前为止它是非常基本的 直到我能得到一个工作脚本 这是我得到的最接近的 但它说它已经添加了电子邮件 尽管在 cpanel 中该电子邮件不存在 所以它显然不存在 请注意 出于安全原因 此代
  • 何时使用以及如何编写循环半代码[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我们什么时候使用循环半 另外 是否应该有人简要说明如何编写其代码 您可以使用循环半来避免
  • 每次我想使用数据库时是否都需要打开 MongoDB 连接?

    在我正在使用的示例中是以下代码 lets require import the mongodb native drivers var mongodb require mongodb We need to work with MongoCli
  • Laravel 中的“批量分配”是什么意思?

    当我浏览 Laravel Document 关于 Eloquent ORM 主题部分时 我得到了一个新术语 批量分配 文档显示如何进行批量分配以及 fillable or guarded属性设置 但经历了这些之后 我对 批量分配 以及它是如
  • 正则表达式 - 匹配句子中每个单词中除第一个字母以外的所有字母

    我几乎在这里得到了答案 但我遗漏了一些东西 我希望这里有人可以帮助我 我需要一个正则表达式来匹配句子中每个单词中除第一个字母之外的所有字母 然后我需要用正确数量的星号替换匹配的字母 例如 如果我有以下句子 There is an enorm
  • 通过 eclipseLink 生成 sql 时出现问题 - 缺少分隔符

    我正在将 eclipseLink 与 jpa 一起使用 在我的 persistence xml 中 我定义生成一个 create sql 文件 将生成该文件 但每个 sql 语句缺少 分隔符 是否可以在 persistence xml 中或
  • 从 Google Cloud Composer 运行 docker 运算符

    至于文档 Google Cloud Composer 气流工作节点由专用的 kubernetes 集群提供服务 我有一个包含 ETL 步骤的 Docker 我想使用气流运行它 最好在托管 Workers 的同一个 Kubernetes 上或
  • 如何在 DELETE 语句中使用行的物理位置 (ROWID)

    我有一个表 其中有很多重复的行并且没有主键 我只想删除重复的记录 但是当我尝试这样做时 它会删除所有对等记录 我怎样才能找到ROWID来自 Postgres 中的表 在 PostgreSQL 上 行的物理位置称为 CTID 因此 如果您想查
  • Spark 结构化流如何处理背压?

    我正在分析 Spark 结构化流的背压功能 有谁知道详情吗 是否可以通过代码调整流程传入记录 谢谢 如果您的意思是动态更改结构化流中每个内部批次的大小 那么NO 结构化流中没有基于接收器的源 因此完全没有必要 从另一个角度来看 Struct
  • 如何根据条件对 pandas 数据框进行切片?

    当我使用以下代码时 frioMurteira data loc data POM Murteira data TMP gt 7 2 DTM TMP 我收到以下错误 cannot compare a dtyped float64 array
  • Page-Break-inside 属性在 chrome 中不起作用

    我有一个长表数据 其中有许多行和嵌套表 当我打印这些数据时 表和嵌套表的行只是在分页符上断开 意味着表和数据被分成页面 所以我在那里使用以下 CSS 属性 table tr page break inside avoid position
  • UICollectionViewCell 中的 UICollectionView (Swift)

    我想放一个UICollectionView在每个可重复使用的UICollectionViewCell The 灰犁沟方法对我来说效果不太好 因为使用一种UICollectionViewController两个数据源和委托的类UICollec
  • 如果外部和内部参数已知,则从 2D 图像像素获取 3D 坐标

    我正在使用 tsai 算法进行相机校准 我得到了内在和外在矩阵 但如何从该信息重建 3D 坐标 1 我可以使用高斯消元法来查找 X Y Z W 然后点将 X W Y W Z W 作为齐次系统 2 I can use the OpenCV d