通过 SVD 从基本矩阵中提取翻译的正确方法

2024-01-08

我校准了相机并找到了内部参数(K)。我还计算了基本矩阵(F)。

现在 E= K_T* F * K 。到目前为止,一切都很好。

现在我们将基本矩阵 (E) 传递给 SVD,以使用分解值 (U,W,V) 来提取旋转和平移:

 essentialMatrix = K.Transpose().Mul(fund).Mul(K);
 CvInvoke.cvSVD(essentialMatrix, wMatrix, uMatrix, vMatrix, Emgu.CV.CvEnum.SVD_TYPE.CV_SVD_DEFAULT);

**问题)此时,已经提出了两种方法,这让我很困惑哪一种真正给出了正确的答案 - 特别是对于翻译:

第一种方法在此输入链接描述 http://www.eecis.udel.edu/~cer/arv/readings/old_mkss.pdf作者建议按如下方式计算 R,T:

但在第二种方法中[http://isit.u-clermont1.fr/~ab/Classes/DIKU-3DCV2/Handouts/Lecture16.pdf] http://isit.u-clermont1.fr/~ab/Classes/DIKU-3DCV2/Handouts/Lecture16.pdf%5D作者提供了 T 的另一个公式,即 +U 、 -U ,如下所示:

我正在使用 openCv 库在 C# .Net 上实现此功能。有人知道哪个翻译公式是正确的吗?


第一个解显示与向量 t 叉积的矩阵表示(因此第一个解 = [t]x ),而第二个解仅显示平移向量 t (https://en.wikipedia.org/wiki/Essential_matrix https://en.wikipedia.org/wiki/Essential_matrix).

[t]x 的定义为:

(from http://gandalf-library.sourceforge.net/tutorial/report/img148.png http://gandalf-library.sourceforge.net/tutorial/report/img148.png)

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

通过 SVD 从基本矩阵中提取翻译的正确方法 的相关文章

  • 如何使 Windows 窗体的关闭按钮不关闭窗体但使其不可见?

    该表单有一个 NotifyIcon 对象 当用户单击 关闭 按钮时 我希望表单不关闭而是变得不可见 然后 如果用户想再次查看该表单 可以双击系统托盘中的图标 如果用户想关闭表单 可以右键单击该图标并选择 关闭 有人可以告诉我如何使关闭按钮不
  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • ASP.NET Core Serilog 未将属性推送到其自定义列

    我有这个设置appsettings json对于我的 Serilog 安装 Serilog MinimumLevel Information Enrich LogUserName Override Microsoft Critical Wr
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 如果使用 SingleOrDefault() 并在数字列表中搜索不在列表中的数字,如何返回 null?

    使用查询正数列表时SingleOrDefault 当在列表中找不到数字时 如何返回 null 或像 1 这样的自定义值 而不是类型的默认值 在本例中为 0 你可以使用 var first theIntegers Cast
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke

随机推荐

  • Visual Studio 中的项目目录结构丢失了?

    我正在学习 Visual Studio 2015 社区 我是一位经验丰富的程序员 但刚接触 VS 文件表示方式让我感到困惑 我创建了一个解决方案 并添加了一个现有项目 VS 正在向我显示所有项目文件 在我的例子中是一个 C 项目 所以 c
  • 如何按需启用 javax.net.debug

    我们的应用程序使用 Apache HttpClient 4 5 3 我们观察到客户端和服务器之间使用 SNI 功能进行通信的非常奇怪的行为 服务器配置为如果 SSL 请求带有我们客户端期望的服务器名称 即 服务器的主机名 则返回 GoDad
  • 仅列出城市名称 Geocomplete.js 或 Google 位置自动完成

    我只想使用 Geocomplete js 显示城市名称 我已将搜索限制为仅显示城市 但它最后仍然显示国家名称 美国 我想摆脱它 有任何建议请 Thanks 很高兴我终于找到了 geocomplete js 的解决方案 希望它对某人有用 解决
  • 不允许在 Web 线程上使用多个锁!请提交错误。现在崩溃了

    我发出一个 url 请求并等待答案 我启动请求 然后等待直到 synchronousOperationComplete TRUE NSRunLoop theRL NSRunLoop currentRunLoop while synchron
  • 如何在MPandroidchart库中使用图标作为饼图的标签

    我正在使用 mpandroidchart 库来构建饼图 饼图的要求是每个条目中都应包含图标 In my case it is showing up the percentage of each entry values 有什么办法可以将标签
  • node.js - ReferenceError:导航器未定义

    我越来越ReferenceError 导航器未定义在node js上运行以下代码 navigator geolocation getCurrentPosition data gt console log data 我认为问题在于导航器 地理
  • 灯箱图片下载

    我在多个图片库中使用 Lightbox 2 我想为我的用户提供一种在灯箱中查看图像时下载图库中的图像的方法 如果有一个 下载 按钮就完美了 我把它想象在标题附近 问题是我对Javascript很烂 这个项目是一个不经常使用的内部工具 我自愿
  • Bokeh:将变量传递给小部件的 CustomJS

    Bokeh 的一个好处是 可以从 Python 层指定回调 从而在 javascript 级别上产生操作 而无需 bokeh 服务器 因此 人们可以创建在浏览器中运行的交互式小部件 而无需运行 Ipython 或 Bokeh 服务器 0 9
  • 如何从 Pandas 字典中存在的数据框列中删除单词

    扩展至 从字符串中删除单词列表 https stackoverflow com questions 25346058 removing list of words from a string 我有以下数据框 我想从 df name 列中删除
  • MongoDB 嵌入式集合的首选模式。文档与数组

    我相信至少有两种方法可以在 mongodb 文档中嵌入数据 在一个简化的情况下 我们可以有这样的东西 name bill lines idk73716 name Line A idk51232 name Line B idk23321 na
  • Thrift python 3.4 TypeError:需要字符串参数,得到“字节”

    我正在尝试阿帕奇节俭 https thrift apache org 使用 Thrift 似乎支持的 python 3 4 因为它有lib linux x86 64 3 4 under build目录 但我不断收到此错误消息 File ho
  • 如何将整个脚本放入循环中?

    我在编码方面没有任何经验 但我把我的野心用 python 编写了一些游戏代码 一切都很完美 D 但我有一个问题 我不知道如何无限重复代码 我在网上查了一下 但不太明白 我将在这里展示部分代码 也许有人可以解释我如何将所有代码放入 重复 中
  • C# 用户不活动的时间有多久

    一些背景 我正在编写一个具有多种表单等的应用程序 用户必须登录才能使用大部分功能 到目前为止效果很好 然而 现在 客户端请求用户在一定时间的不活动时间后注销 问题是用户仍然可以在计算机上处 于活动状态 只是不能在我的应用程序中处于活动状态
  • 具有相等填充的线性布局中的子项

    我目前正在设计一个带有 5 个按钮的 ButtonBar 它们都是 ImageButton 但目前只有 3 个 这是我的第一个 Android 项目 所以我一边做一边学习 我试图平均分配每个按钮的权重 而不缩放它们 具有相等的填充而不是相等
  • 在重新启动时保留应用程序状态

    我一直在尝试通过序列化我的主应用程序来保留 iPhone 应用程序的状态UITabBarController using NSKeyedArchiver archiveRootObject toFile 但我遇到了困难 首先我遇到了一个问题
  • 在 NetBeans 上使用 Armadillo 库编译 C++

    我将编译包含犰狳库的 C 程序 通过命令行使用以下命令可以解决此问题 g arm cpp o example O1 larmadillo 但是 当我将 O1 larmadillo 添加到 NetBeans 项目的编译选项时 出现了大量错误
  • 将 csv 导入到 iPhone 的 coredata sqlite

    如何将 csv 导入到 sqlite iPhone 的核心数据 我尝试过使用 SQLite 管理器 但它将 csv 导入到新表中 我还需要导入一些日期 那么如何将数据导入到我的sqlite数据库中呢 我有 3 个具有不同属性的实体 并且在
  • 为什么 a++++b 不起作用?

    int main int a 5 b 2 printf d a b return 0 此代码给出以下错误 错误 需要左值作为增量操作数 但如果我在整个过程中添加空格a and b 然后就可以正常工作了 int main int a 5 b
  • Android - 启动时启动服务

    从我在 Stack Exchange 和其他地方看到的一切来看 我已经正确设置了所有内容 以便在 Android 操作系统启动时启动 IntentService 不幸的是它没有在启动时启动 并且我没有收到任何错误 也许专家可以帮忙 显现
  • 通过 SVD 从基本矩阵中提取翻译的正确方法

    我校准了相机并找到了内部参数 K 我还计算了基本矩阵 F 现在 E K T F K 到目前为止 一切都很好 现在我们将基本矩阵 E 传递给 SVD 以使用分解值 U W V 来提取旋转和平移 essentialMatrix K Transp