通过两张图像之间的姿势,如何将一个场景中的一个点投影到另一个场景中?

2024-03-03

如果您拥有查看同一场景的两个图像的完整相对 3D 值(相对 x、y、z),以及它们之间的外部/内部参数,那么如何将一个场景中的点投影到另一个场景中,在opencv中?


一般情况下你不能这样做。有无数个 3D 点(3d 中的一条线)映射到图像空间中的一个点,在另一张图像中,这条线不会映射到单个点,而是一条线(请参见维基百科关于对极几何的文章 http://en.wikipedia.org/wiki/Epipolar_geometry#Epipolar_line)。您可以计算该点必须位于的直线上基本矩阵 http://en.wikipedia.org/wiki/Fundamental_matrix_%28computer_vision%29.

If you do have a depth map, reproject the point into 3D - using the equations on the top of the opencv page on camera calibration http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html#cv-reprojectimageto3d, especially this one (it's the only one you need):
Camera equations
u and v are your pixel coordinates, the first matrix is your camera matrix (for the image you are looking at currently), the second one is the matrix containing the extrinsic parameters, Z you know (from your depth map), X and Y are the ones you are looking for - you can solve for those parameters, and then use the same equation to project the point into your other camera. You can probably use the PerspectiveTransform function from opencv to do the work for you, however I can't tell you from the top of my head how to build the projection matrix.

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

通过两张图像之间的姿势,如何将一个场景中的一个点投影到另一个场景中? 的相关文章

  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 由于依赖性问题,离子启动失败

    我刚刚安装了 Ionic npm install g ionic cli 当我尝试跑步时 ionic start ionic test app 初始化失败并出现 npm 依赖错误 关于名为 postcss 的包的错误版本的问题 ionic
  • https://www.googleapis.com/games/v1/players/xxxxx LibGDX And​​roid 出现意外响应代码 403

    我正在使用 LibGDX 制作 Android 游戏 我想使用 Google Play 游戏服务 API 但我无法让它工作 当我尝试登录时会发生以下情况 06 12 20 08 47 745 E Volley 4046 253 tk a U
  • 尝试静态链接 Boost

    我正在 Linux Eclipse CDT g 和 Boost 库中工作 对于使用 Boost 线程的现有程序 我尝试静态链接它而不是动态链接它 usr local lib 目录包含以下文件 libbost thread a libbost
  • JS 三元运算符混淆

    我现在正在学习三元运算符 我已经掌握了基础知识 但后来我看到了这个片段 它对我来说没有任何意义 谁能解释一下它是如何组合在一起的 b m 4 c 2 63 lt a 77 gt a a 65 48 lt a 57 gt a a 48 c 1
  • 结构体数组

    在不知道数组中最终存储的结构数量的情况下 如何在 C 中创建结构数组 我想在 for 循环中循环 创建一个 tempStruct 设置其变量 将其添加到数组中 然后再次循环 创建一个新的 tempStruct 并将其添加到数组中 当我试图与
  • 如何将菜单项放置在弧形栏上?

    我的客户想要一个弯曲的菜单 我该怎么做 菜单项位于红色方块中 它们应该大致位于粉色方块所在的位置 在蓝色条上 我应该以某种方式将它们放置在 SVG 中 还是将 SVG 与背景图像结合起来 并使用 Flexbox 等定位菜单项 而且它还应该对
  • “SQLNCLI”提供程序未在本地计算机上注册,sql server 2012

    致力于将应用程序从我的开发箱部署到客户端 在客户端上运行 exe 时 出现错误 SQLNCLI10 提供程序未在本地计算机上注册 我正在 SQL Server 2012 中进行开发 我尝试在目标计算机上安装 sqlncli msi 但没有成
  • AngularJS $compile 未定义

    我正在尝试学习 AngularJS 并且正在尝试动态编译一些 DOM 元素 我已经尝试过演示 try var templateHTML angular element p total p scope var clonedElement co
  • 哪里是设置 NOCOUNT 的最佳位置?

    对于运行在专用 SQL Server 上的大型数据库 数千个存储过程 是否最好包含SET NOCOUNT ON在每个存储过程的顶部 或者在服务器级别设置该选项 属性 gt 连接 gt 无计数 复选框 听起来 DRY 原则 不要重复自己 适用
  • iPhone 音频播放:通过内置扬声器强制播放?

    有谁知道是否可以实现即使插入耳机也可以通过内置扬声器播放音频文件 我不确定您是如何进行音频播放的 但请尝试查看 重定向输出音频 部分音频会话编程指南 http developer apple com iphone library docum
  • 如何内联分配 C 结构体?

    typedef struct int hour int min int sec counter t 在代码中 我想初始化该结构的实例 而不显式初始化每个成员变量 也就是说 我想做类似的事情 counter t counter counter
  • 从 json 反序列化,其中可以是单个 T 对象或 T 数组到 List [重复]

    这个问题在这里已经有答案了 我有这样的代码 var json GetJsonData path JObject event dates data JObject Parse json var event dates list JObject
  • /usr/local/lib/python2.6 和 /usr/lib/python2.6 有什么区别?

    我正在使用 Ubuntu 并注意到这两个目录 usr local lib python2 6 dist packages usr lib python2 6 dist packages 应该使用哪一个来安装 Python 包 Thanks
  • 持久的 RESTful 交互

    目前我们的团队正在进行讨论 我对其他观点感兴趣 假设我们有一个 RESTful Web 服务 其作用是通过应用各种分析算法和服务来注释文档 基本交互清晰 我们有一个资源 即文档集合 客户端将新文档 POST 到集合中 获取新文档的 URI
  • 如何设置表单具有透明背景

    我正在努力让我的表单在 vb net 中具有透明背景 目前采用新我设置的形式 Me SetStyle ControlStyles SupportsTransparentBackColor true 但表单仍然显示为具有默认的灰色背景 有人可
  • 如何在magento中进行自定义查询?

    我想在 magento 网站中编写自定义查询 我在 magento 根文件夹中创建了一个文件 test php 并编写了一个自定义查询 但它没有给我任何结果 请指导我 尝试这个 connection Mage getSingleton co
  • 如何在 python 中设置 __contains__ 方法?

    我无法理解如何正确设置contains我班上的方法 我知道当你调用它时它会自动使用运算符 in 我只是认为我不明白如何正确设置它 我必须使用它来查看 anotherCircle 是否包含在特定的圆圈内 均来自用户输入 教授让我们为此采用两种
  • Xcode 5 到 Xcode 4 项目运行

    我有一个在 iOS SDK 6 中启动的项目 我下载了带有 iOS 7 的 Xcode 5 Beta 并成功运行它 但是 要提交项目 我需要返回到 SDK 6 和 Xcode 4 当我这样做时 我会收到项目中每个 XIB 文件的以下消息 如
  • 尝试在实际 Apple Watch 上构建和运行 WatchKit 扩展时,如何避免错误“启动‘AppName’WatchKit 扩展时出错”?

    当我尝试在真正的 Apple Watch 上构建并运行 WatchKit 扩展时 有时会收到以下错误消息 我尝试为 iPhone 构建父应用程序 然后再次为我的 WatchKit 应用程序构建父应用程序 但我仍然收到错误消息 有谁知道导致此
  • 通过两张图像之间的姿势,如何将一个场景中的一个点投影到另一个场景中?

    如果您拥有查看同一场景的两个图像的完整相对 3D 值 相对 x y z 以及它们之间的外部 内部参数 那么如何将一个场景中的点投影到另一个场景中 在opencv中 一般情况下你不能这样做 有无数个 3D 点 3d 中的一条线 映射到图像空间