如何从 calibrateCamera 结果获取相机世界位置?

2024-01-06

我正在使用 calibrateCamera 执行相机校准。输出的一部分是一组 Rodrigues 旋转向量和 3-D 平移向量。

我对摄像机的世界位置感兴趣。如果我直接绘制平移点,结果看起来不正确。我觉得我的坐标空间很混乱,但我在解析 opencv 文档时遇到了问题:

rvecs – 为每个模式视图估计的旋转向量的输出向量(请参阅 Rodrigues() )。也就是说,每个第k个旋转向量与相应的第k个平移向量(参见接下来的输出参数描述)一起将校准图案从模型坐标空间(其中指定了对象点)带到世界坐标空间,即即,校准图案在第k个图案视图(k=0..M -1)中的真实位置。

我的问题是,如何从 Rodrigues 旋转向量和使用 opencv 的 calibratecamera 获得的相应平移向量导出相机世界位置?


来自opencv 文档 http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html:世界到相机坐标

那里有2个矩阵,内在矩阵和外在矩阵 https://en.wikipedia.org/wiki/Camera_resectioning.

如果您有 XYZ 坐标,则内在矩阵可为您提供图像中某物的 U、V 坐标(像素)坐标在镜头中(中间的中心)。外在矩阵给你坐标在镜头中从世界坐标到 XYZ。

因此,您只需要外在矩阵即可实现您的目标。

你知道你想要从相机中的XYZ到世界。由于外在矩阵是从世界到相机的,你只需要反转它!

Cworld=E^(-1)*Ccamera

相机坐标系中的相机坐标为Ccamera=[0,0,0]

外在矩阵由两个输出组成calibrateCamera, rvects and tvects.

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

如何从 calibrateCamera 结果获取相机世界位置? 的相关文章

  • 查找彼此接近的对象边界

    我正在研究一个计算机视觉问题 其中问题的第一步是找到物体彼此靠近的位置 例如 在下图中 我感兴趣的是找到灰色标记的区域 Input Output 我目前的方法是首先反转图像 然后通过侵蚀进行形态梯度跟随 然后删除一些不感兴趣的轮廓 脚本如下
  • opencv中矩阵的超快中值(与matlab一样快)

    我正在 openCV 中编写一些代码 想要找到一个非常大的矩阵数组 单通道灰度 浮点数 的中值 我尝试了几种方法 例如对数组进行排序 使用 std sort 和选择中间条目 但与 matlab 中的中值函数相比 它非常慢 准确地说 在 ma
  • Opencv未找到所有轮廓

    我试图找到该图像的轮廓 但是该方法查找轮廓只返回1轮廓 轮廓突出显示image 2 我正在努力寻找all外部轮廓就像这些圆圈 里面有数字 我究竟做错了什么 我可以做什么来实现它 image 1 image 2 以下是我的代码的相关部分 th
  • 使用 opencv warpPerspective() 生成道路的自上而下视图

    我正在尝试实施逆透视映射计算与道路上另一辆车的距离 我知道在应用该函数之前我需要生成一个包含源点和目标点的变换矩阵warpPerspective 但我不知道如何计算目的地点 我在这个论坛和其他网站中搜索 但无法将第一张图片转换为第二张图片
  • 提高 pytesseract 从图像中正确识别文本的能力

    我正在尝试使用读取验证码pytesseract模块 大多数时候它都能提供准确的文本 但并非总是如此 这是读取图像 操作图像以及从图像中提取文本的代码 import cv2 import numpy as np import pytesser
  • 使用opencv计算深度视差图

    我无法使用 opencv 从视差图计算深度 我知道两个立体图像中的距离是用以下公式计算的z baseline focal disparity p 但我不知道如何使用地图计算视差 我使用的代码如下 为我提供了两个图像的视差图 import n
  • 如何使用 Python 将我的 GoPro Hero 4 相机直播连接到 openCV?

    我在尝试从我的新 GoPro Hero 4 相机捕获实时流并使用 openCV 对其进行一些图像处理时遇到麻烦 这是我的试用 创建的窗口上没有显示任何内容 import cv2 import argparse import time imp
  • 我可以使用 openCV 比较两张不同图像上的两张脸吗?

    我对 openCV 很陌生 我看到它可以计算出脸部并返回一个矩形来指示脸部 我想知道 openCV 是否可以访问两张包含一张脸的图像 并且我希望 openCV 返回这两个人是否相同的可能性 Thanks OpenCV 不提供完整的人脸识别引
  • 多视图几何

    我从相距一定距离的两台相同品牌的相机捕获了两张图像 捕获了相同的场景 我想计算两个相机之间的现实世界旋转和平移 为了实现这一点 我首先提取了两张图像的 SIFT 特征并进行匹配 我现在有基本矩阵也单应性矩阵 然而无法进一步进行 有很多混乱
  • opencv形态扩张滤波器作为最大滤波器

    就像中值滤波器的定义一样 我可以将 最大滤波器 定义为局部窗口 例如dst x y max 3x3 局部窗口像素 但我在opencv中找不到这样的过滤器 最接近的是 dilate 函数 然后我使用 dilate 函数的默认配置 但结果不正确
  • opencv 2.3.* 读取不工作

    我无法让 imread 工作 与这个人有同样的问题 OpenCV imwrite 2 2 在 Windows 7 上导致异常 并显示消息 OpenCV 错误 未指定错误 无法找到指定扩展名的编写器 https stackoverflow c
  • 如何在 OpenCV 中从 YUV 文件读取帧?

    如何在 OpenCV 中从 YUV 文件读取帧 我编写了一个非常简单的 python 代码来从二进制文件读取 YUV NV21 流 import cv2 import numpy as np class VideoCaptureYUV de
  • 归一化互相关的基础知识

    我正在尝试使用范数校正2 归一化互相关 http en wikipedia org wiki Cross correlation Normalized cross correlation 来自 MATLAB 用于计算发育中胚胎中移动形状的速
  • OpenCV Visual Studio ntdll.dll

    我尝试在 Visual Studio 2013 上使用 OpenCV 2 4 10 创建一个项目 但由于以下异常 到目前为止我运气不佳 请建议帮助 TIA letstryitonemoretime exe Win32 Loaded C Us
  • 检查图像中是否有太薄的区域

    我正在尝试验证雕刻机的黑白图像 更多的是剪贴画图像 不是照片 我需要考虑的主要事情之一是区域的大小 或线条的宽度 因为机器无法处理太细的线条 所以我需要找到比给定阈值更细的区域 以此图为例 竖琴的琴弦可能太细而无法雕刻 我正在阅读有关 Ma
  • 如何使用 python、openCV 计算图像中的行数

    我想数纸张 所以我正在考虑使用线条检测 我尝试过一些方法 例如Canny HoughLines and FLD 但我只得到处理过的照片 我不知道如何计算 有一些小线段就是我们想要的线 我用过len lines or len contours
  • 如何去除给定图像中的噪声,使 ocr 输出完美?

    我已经对这个孟加拉文本图像进行了大津阈值处理 并使用 tesseract 进行 OCR 但输出非常糟糕 我应该应用什么预处理来消除噪音 我也想校正图像 因为它有轻微的倾斜 我的代码如下 import tesserocr from PIL i
  • OpenCV IP 相机应用程序崩溃 [h264 @ 0xxxxx] 访问单元中缺少图片

    我在 cpp 中有一个 opencv 应用程序 它使用 opencv 的简单结构捕获视频流并将其保存到视频文件中 它与我的网络摄像头完美配合 但是 当我运行它从 IP 摄像机捕获流时 它可能会在大约十秒后崩溃 我的编译命令是 g O3 IP
  • 使用 OpenCV 和/或 Numpy 对两个图像进行 Alpha 混合 [重复]

    这个问题在这里已经有答案了 我想将一个填充纯色的半透明矩形添加到已加载的半透明 PNG 中 这是我正在使用的输入图像示例 该图像加载了标准cv2 IMREAD UNCHANGED标志 以便完美保留 alpha 通道 该输入图像存储在imag
  • uri 警告中缺少端口:使用 Python OpenCV cv2.VideoCapture() 打开文件时出错

    当我尝试流式传输 ipcam 时 出现了如下所示的错误 tcp 000000000048c640 uri 中缺少端口 警告 打开文件时出错 build opencv modules videoio src cap ffmpeg impl h

随机推荐

  • 为什么 FusedLocationApi.getLastLocation 为 null

    我正在尝试使用获取位置FusedLocationApi getLastLocation我在清单文件中获得了位置权限
  • 处理传入消息的最佳方式是什么?

    我正在为一个在线游戏编写一个服务器 最终应该能够处理 1 000 2 000 个客户端 我发现做到这一点的三种方法基本上是 1 个线程 连接 阻塞 制作客户端列表 并循环它们 非阻塞 选择 基本上是一次针对所有客户端的阻塞语句 并带有可选超
  • Vuex getter 未更新

    我有以下吸气剂 withEarmarks state gt var count 0 for let l of state laptops if l earmarks length gt 0 count return count 在组件中 这
  • 如何在 Visual Studio Code 中手动终止任务?

    Visual Studio Code 使我们能够在tasks json 中设置任务 我见过人们使用 监视 任务 但不知道如何手动终止它们 我这样做的唯一方法是尝试再次启动同一任务 这会提示我终止正在运行的任务 有键盘快捷键可以做到这一点吗
  • 为什么 $nin 比 $in 慢,Mon​​godb

    我有 5M 文档的集合 索引正确 in 工作完美 但相同的查询 nin 超级慢 这是什么原因 超级快 tech in Wordpress wordpress WORDPRESS 超级慢 tech nin Wordpress wordpres
  • 为什么 useEffect 不会在 window.location.pathname 更改时运行?

    Why 使用效果不运行window location pathname变化 我明白了loc仅记录一次 我怎样才能运行使用效果当路径名更改而没有任何附加库时 useEffect gt const loc window location pat
  • ASP.NET - 向用户发送 PDF

    我有一个创建 PDF 的过程 我希望这些 PDF 是临时的 短暂的 我希望能够在用户单击按钮时执行以下操作 string CreatePDF returns fileName pdf PromptUserToDownloadPDF Dele
  • Subversion 的奇怪问题 - 尝试重新创建曾经在我的存储库中的目录时“文件已存在”

    所以 我曾经有一个名为 mysql 的目录 几次修订前 我删除了它 并决定重新开始 但是当我尝试创建新的 mysql 目录时 我不断遇到 文件已存在 错误 support etc puppet modules mkdir mysql sup
  • 在 T4 中引用程序集时出现“找不到元数据文件”错误

    我有班级图书馆A和图书馆B与T4模板 B 引用 A 并且汇编指令存在于模板内 lt assembly name ProjectDir OutDir A dll gt 当我运行模板转换错误时显示 编译转换 元数据文件 path A dll 无
  • 函数使用 print 进行迭代,但不使用 return 进行迭代

    Python 新手 运行 2 7 我正在尝试创建一个程序 该程序使用函数生成文本 然后将函数生成的文本输出到文件 当只是在 powershell 中打印函数时 如下所示 http codepad org KftHaO6x http code
  • 如何始终显示两个日期选择器并在输入中设置默认日期

    我有两个输入 startdate and enddate 我正在使用 jQuery UI 的日期选择器 我有两个问题 1 如何使日期选择器始终显示 而不是单击输入时显示 当前代码仅显示enddate的日期选择器 当我单击其他输入时它将隐藏
  • 使用 Phonegap 离线浏览已知地图

    您好 提前谢谢您 我想问是否有一种方法可以编译已知的谷歌地图图块并将其加载到 Phonegap 应用程序中 更具体地说 我正在开发一个应用程序 涉及特定区域内的地理位置 路径导航等 由于应用程序的使用性质 例如 它可能用于野生动物 用户的手
  • 将返回的 JSON 对象属性转换为(低位在前)camelCase

    我从 API 返回了 JSON 如下所示 Contacts GivenName Matt FamilyName Berry 为了保持与我的代码风格一致 camelCase 小写首字母 我想转换数组以生成以下内容 contacts given
  • 我可以将 jQuery UI 1.12.1 与 jQuery 3.x 一起使用吗?

    我改变了我的 jQuery1 7 2 to 3 1 1并更改了我的 jQuery UI 版本1 8 16到版本1 12 1 我现有的很多 JS 东西都坏了 比如按钮的样式 以及dialog行为方式出乎意料 即一半的模式对话框被神秘的东西掩盖
  • 具有事件处理程序的 asp.net 动态按钮

    我在 ASP NET 中动态生成的按钮及其事件处理程序遇到了一个小问题 我为特殊用户生成了一个带有附加按钮的灵活表格 这些按钮将动态生成 效果很好 但我无法让事件处理程序工作 以下是我的代码中的一些片段 构建按钮 在自己的函数中 Butto
  • 使用 JavaScript 从 C# 执行 doPostBack

    您好 我有一个父页面 它打开一个弹出窗口 用户在子弹出页面上进行一些更改 然后单击保存按钮 当用户单击保存按钮时 我想PostBack到父页面 以便在弹出窗口中所做的更改可以在父窗口中看到 Question 如何实现上述场景 我想在aspx
  • 将单个 doc 文件转换为 pdf

    我正在使用以下代码如何以编程方式将 Word 文件转换为 PDF https stackoverflow com questions 607669 how do i convert word files to pdf programmati
  • 在 virtualenv 中创建项目时没有名为 django.core 的模块

    所以我环顾了很多与我类似的问题 但我找不到具体的答案 我的电脑规格是 Windows 7 64 位 我的问题是这样的 1 我使用 pip 安装了 virtualenv pip install virtualenv 2 之后我创建并激活了一个
  • JUnit 5 有类似 Cucumber 的标记钩子的东西吗?

    有没有办法像 Cucumber 一样在 JUnit5 中用钩子注释单个测试 例如 在黄瓜中 可以编写像这样的钩子 Before SomeTest public void beforeSomeTest 然后 如果我们使用 SomeTest 注
  • 如何从 calibrateCamera 结果获取相机世界位置?

    我正在使用 calibrateCamera 执行相机校准 输出的一部分是一组 Rodrigues 旋转向量和 3 D 平移向量 我对摄像机的世界位置感兴趣 如果我直接绘制平移点 结果看起来不正确 我觉得我的坐标空间很混乱 但我在解析 ope