如何获得相机旋转? (阿鲁科图书馆)

2024-01-04

我一直在尝试了解下载 Aruco 库时包含的 aruco_test.cpp 程序的输出。

输出具有以下格式:

22=(236.87,86.4296) (422.581,78.3856) (418.21,228.032) (261.347,228.529) Txyz=0.00813142 -0.0148134 0.140595 Rxyz=-2.14032 0.0777095 0.138929

22是标记的唯一标识符,接下来的四对数字是标记的四个角。我的问题是两个向量 Tvec 和 Rvec。

我在互联网上读到,tvec 是从相机中心到对象(本例中的标记)的平移向量,而 rvec 是对象相对于相机的旋转。

我对此有几个问题:

我如何知道相机的轴?我的意思是,有没有办法知道 x、y 和 z 面向哪里?

如何从物体相对相机的旋转获得相机的旋转?

有人可以更好地向我解释向量的含义,以便我能够真正理解它吗?我认为我的主要问题是我真的不知道这些数字的真实含义。

编辑:我一直在做一些测试来检查轮换是如何工作的,但我并不真正理解结果:

  1. 移动相机,标记固定在地板上:

初始位置:相机看着标记 - 标记的“z”轴看着相机,“y”向上,“x”向右:Rxyz=2.40804 -0.0823451 0.23141

在标记的“x”轴上移动相机(向上倾斜相机):Rxyz=-1.97658 -0.0506794 -0.020052

在标记的“y”轴上移动相机(将相机向右倾斜):Rxyz=2.74544 -0.118551 -0.973627

将相机旋转90度(向右):Rxyz=1.80194 -1.86528 0.746029

  1. 移动标记而不是相机,使相机固定地看着标记:

使用与前一种情况相同的初始位置。

在“x”轴上移动标记:Rxyz=2.23619 -0.0361307 -0.0843008

在“y”轴上移动标记:Rxyz=-2.9065 -0.0291299 -1.13356

在“z”轴上移动标记(向右旋转 90°):Rxyz=1.78398 1.74161 -0.690203

我一直假设向量的每个数字都是各自轴上的旋转,但我认为我的假设是错误的,因为如果是这种情况,这个值没有多大意义。


我如何知道相机的轴?我的意思是,有没有办法知道 x、y 和 z 面向哪里?

This is defined in the OpenCV library https://docs.opencv.org/3.4/d9/d0c/group__calib3d.html. x-axis increases from left to right of the image, y-axis increases from top to bottom of the image, and z axis increases towards the front of the camera. Below image explains this axis selection. pinhole_camera_model

如何从相机的旋转获得相机的旋转 物体与相机?

rvec是标记相对于相机框架的旋转。你可以转换rvec使用内置的 3x3 旋转矩阵罗德里格斯函数 https://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#rodrigues。如果标记与相机框架对齐,则该旋转矩阵应读取 3x3 单位矩阵。

如果你得到这个矩阵的逆(这是一个旋转矩阵,所以逆是矩阵的转置),那就是相机相对于标记的旋转。

有人可以更好地向我解释向量的含义,以便我能够真正理解它吗? 我认为我的主要问题是我真的不知道那些是什么 数字代表实数。

tvec是从相机帧的原点到检测到的标记中心的距离(这是F_c - P图中的线。rvec正如上面答案中所描述的。

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

如何获得相机旋转? (阿鲁科图书馆) 的相关文章

  • Python正则表达式替换除特定单词之外的所有内容

    我正在尝试执行以下操作用正则表达式 import re x re compile going you words to replace s I am going home now thank you string to modify pri
  • Spyder 和 Jupyter 有什么区别?

    我正在学习Python用于数据科学 但我的问题是我仍然不明白Spyder和Jupyter之间的区别 我希望你们能帮助我理解其中的区别 我将不胜感激 以下只是这两个工具的基本摘要 Jupyter 是一个非常流行的用于数据分析的应用程序 它是一
  • Firefox 中的文件下载对话框

    我正在使用firefox进行selenium python编程 自动开始下载并保存文件 我已经完成了所有操作 但无法下载csv文件 我的python版本是2 6 6 我的selenium版本是最新版本 我也尝试使用以下链接 即 fp web
  • Python:如果满足条件,则循环遍历一个字典并在新字典中创建键/值对

    我想将一个字典的值与第二个字典的值进行比较 如果值满足特定条件 我想创建第三个字典 其中的键和值对将根据匹配情况而变化 这是一个显示我的问题的人为示例 编辑 对所有返回感到抱歉 但堆栈溢出无法识别单个返回 并且在一行上运行 3 4 行 使代
  • Native TF 与 Keras TF 性能比较

    我使用本机和后端张量流创建了完全相同的网络 但在使用多个不同参数进行了多个小时的测试后 仍然无法弄清楚为什么 keras 优于本机张量流并产生更好 稍微但更好 的结果 Keras 是否实现了不同的权重初始化方法 或者执行除 tf train
  • Python 正则表达式从文本中提取域

    我有以下正则表达式 r a zA Z0 9 a zA Z0 9 61 a zA Z0 9 a zA Z 2 6 当我将其应用于文本字符串时 比方说 这是 www website1 com 这是 website2 com 我得到 www we
  • 如何从 Windows 7 PC 上完全卸载 Python 2.7

    从这里安装了Python 2 7 https www python org downloads release python 279 https www python org downloads release python 279 然后我
  • 来自多元 t 分布的样本 python

    我想知道Python中是否有一个从多元学生t分布中采样的函数 我有包含 14 个元素的均值向量 14x14 协方差矩阵和自由度 我想从这个 t 分布中采样一个向量 对于一维情况 我使用 stats t rvs df loc scale 并且
  • 使用 scipy、python、numpy 进行非线性 e^(-x) 回归

    下面的代码为我提供了一条最佳拟合线的平坦线 而不是沿着 e x 模型的一条适合数据的漂亮曲线 谁能告诉我如何修复下面的代码以使其适合我的数据 import numpy as np import matplotlib pyplot as pl
  • ipython/jupyter 中的 tk 问题

    我正在尝试编写一个用于从 ipython jupyter 笔记本启动的 gui 但在笔记本中使用 tkinter 时遇到了麻烦 特别是在让 tk gui 窗口正常关闭方面 如何从 jupyter 制作 启动 tkinter gui 然后在不
  • Scrapy FakeUserAgentError:获取浏览器时发生错误

    我使用 Scrapy FakeUserAgent 并在我的 Linux 服务器上不断收到此错误 Traceback most recent call last File usr local lib64 python2 7 site pack
  • Python 中的 Firebase 身份验证时出现 KeyError:“databaseURL”

    相信你做得很好 我是 firebase 的新手 正在尝试进行用户身份验证 我已经安装了pyrebase4并在firebase控制台上创建了一个项目 我还启用了使用 电子邮件和密码 登录并尝试连接我的应用程序 下面是我正在尝试的代码 impo
  • 如何在 FastAPI Swagger API 中按方法类型对方法进行排序?

    如何在 FastAPI Swagger 自动文档中设置 API 方法的排序顺序 我希望所有方法按类型分组 GET POST PUT DELETE 这个答案 https stackoverflow com questions 24951268
  • 在python中检测按下了哪些键

    我需要知道现在按下的是哪个键 我不想捕获一些特定的按键来触发事件或类似的事情 我想知道现在按下了哪些键并显示它们的列表 我还需要捕获特殊键 如 F1 F12 shift alt home windows 等 基本上是键盘上的所有键 我如何在
  • 如何在 Python 中连接两个列表?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 如何在 Python 中连接两个列表 Example listone 1 2 3 lis
  • 如何在 Windows 7 中使用 Python 廉价地创建非常大的文件? [复制]

    这个问题在这里已经有答案了 可能的重复 在Windows系统上快速创建大文件 https stackoverflow com questions 982659 quickly create large file on a windows s
  • 检查图像中是否有太薄的区域

    我正在尝试验证雕刻机的黑白图像 更多的是剪贴画图像 不是照片 我需要考虑的主要事情之一是区域的大小 或线条的宽度 因为机器无法处理太细的线条 所以我需要找到比给定阈值更细的区域 以此图为例 竖琴的琴弦可能太细而无法雕刻 我正在阅读有关 Ma
  • 如何将 Django 数据库中的模板标签解释/渲染为 HTML

    我正在尝试添加带有来自 Django 管理站点的图像的帖子 但安全 自动转义关闭过滤器无法解释 Django 的模板标签 My input and page look like 复制图像地址 给出http 127 0 0 1 8000 7B
  • 内置模块位于哪里?

    我尝试查找列出的所有目录sys path但我找不到任何builtins py文件 那么它在哪里呢 从字面上看 该模块内置于 python 解释器中 gt gt gt import builtins gt gt gt builtins
  • 在不同进程之间共享列表?

    我有以下问题 我编写了一个函数 它将列表作为输入 并为列表中的每个元素创建一个字典 然后我想将这本字典附加到一个新列表中 这样我就得到了一个字典列表 我正在尝试为此生成多个进程 我的问题是 我希望不同的进程访问由其他进程更新的字典列表 例如

随机推荐

  • std::stack 在不同容器上的实现有什么实际区别?

    当实施一个std stack 有几个选项 例如 stack with default underlying deque std stack lt int gt intDequeStack stack with underlying vect
  • 将多个内容 CSS 文件添加到 CKEditor

    如何使用 CKEditor 使用 1 个以上的 css 文件作为内容 CSS 我已经在配置中添加了 bootstrap css config contentsCss css bootstrap min css 我们的设计师创建了第二个 cs
  • 向进程组的所有成员发送信号的最佳方式是什么?

    我想杀死整个进程树 使用常见脚本语言执行此操作的最佳方法是什么 我正在寻找一个简单的解决方案 您没有说明要杀死的树是否是单个进程组 如果树是从服务器启动或 shell 命令行分叉的结果 通常会出现这种情况 您可以使用 GNU ps 发现进程
  • REG 删除批处理文件中包含引号的值?

    我正在尝试删除我制作的批处理文件中的一些注册表项 我在这里找到了以下代码 它运行良好 直到它击中 REG DELETE for F tokens 1 a in REG QUERY KEY findstr I C VALUE do REG D
  • 寻址 python 对象

    我正在尝试将 ncclient 用于 Python 如果我这样做 它会起作用 from ncclient import manager m manager connect 如果我这样做就会失败 import ncclient m nccli
  • Susy:带有固定排水沟的流体柱?

    我正在尝试构建一个包含流体柱和固定排水沟的 12 列网格 列的宽度会随着窗口大小的调整而改变 但装订线将保持不变 基本上 百分比代表列 em 代表装订线 这对苏西来说可能吗 您可以使用填充作为排水沟 并允许您拥有固定的 间距 同时保持网格的
  • 类路径和构建路径有什么区别

    我对这两个术语感到困惑 另外 我应该如何在 Spring MVC 项目的 src 文件夹下创建文件 当我使用 File 对象创建时 它会在 C SpringSourceTool 中创建文件 我猜这是 ClassPath 对吗 我怎样才能得到
  • 在网站上显示 RTSP

    我有一个指向摄像机的 RTSP 链接 我想将其显示在网页上 由于视频标签不支持 RTSP 并且 google chrome 不再支持 VLC 和 QuickTime 插件 目前使用 RTSP 链接显示此摄像机的最佳方式是什么 如果延迟不是一
  • 该属性应该是我的对象接口的一部分吗?

    我有一个名为 IsSecureConnection 的属性 它是我的对象接口的一部分 这对于接口的大多数实现都是有意义的 但是 在某些实现中 我希望将属性设置为只读 即使所有实现都需要此属性 尽管有时略有不同 我是否应该从对象的接口中省略此
  • 在 cron 中运行 headless selenium 时,出现错误“Pyperclip 无法找到适合您系统的复制/粘贴机制”

    我用Python实现了一个selenium脚本来上传一些图片和内容到Facebook 我将其命名为FBUpload py 当我以这种方式启动它时 它工作得很好 在无头模式下 Xvfb 10 ac python3 home someuser
  • PHPWord:创建从右到左的阿拉伯语 Word 文档

    我正在尝试使用PHPWord http phpword codeplex com 创建一个 Word 文档 其中包含从 MySQL 数据库中提取的动态数据 数据库有 MySQL 字符集 UTF 8 Unicode utf8 MySQL 连接
  • SQL查询按月比较产品销量

    我有一个每月状态数据库视图 我需要根据该视图构建报告 视图中的数据看起来像这样 Category Revenue Yearh Month Bikes 10 000 2008 1 Bikes 12 000 2008 2 Bikes 12 00
  • 在 Nest ElasticSearch 中重复使用计数和搜索查询

    有没有办法通过 Nest 在 ElasticSearch 中重用对 Client Search 和 Client Count 的流畅查询 这是定义搜索流畅定义的代码片段的开头 System Func
  • React 组件不会在更新状态时重新渲染

    我认为你知道更好的解决方案 我有一个包含我的猫的对象数组的文件 var categories id 1 name Faktury selected false id 2 name Telefony selected false id 3 n
  • 无需用户干预即可刷新 linkedin 用户访问令牌

    有没有办法通过应用程序为经过身份验证的用户刷新 Linkedin 访问令牌 没有他的干预 提前致谢 仅当用户当前登录 LinkedIn 并且令牌尚未过期时 该过程才会 无缝 https developer linkedin com blog
  • 如何在没有 old_io 的情况下从字节读取/写入整数值?

    有方便的特点Reader and Writer in std old io使用各种字节序读取 写入整数值的模块 但该模块被声明为已过时 因此我正在尝试找出其他方法来做到这一点 一种方法是读取字节并使用位算术构造结果值 标准库还有其他方法吗
  • Docker 无法识别 Postgresql 数据目录

    我拼命地尝试让我继承的 Docker 项目启动并运行 而 Docker 给我带来了无穷无尽的问题 当尝试启动容器时 我的 Postgresql 容器出现以下错误 FATAL var lib postgresql data is not a
  • 使用 /clr 编译的 C++-CLI 库调试 C 可执行文件

    我正在使用 Visual Studio 2010 来调试主要用 C 编写的应用程序 通常 我可以很好地附加调试器 但当我链接到用 C CLI 编写的库时 我遇到了一些问题 如果我用以下命令编译库 clr标志 我最终必须为此尚未编写的库执行此
  • Caliburn.Micro + Autofac 引导

    我有一个 Caliburn Micro 项目 我正在尝试从其移植 to Autofac http autofac org 我在用着这段代码 https gist github com kavand 6272568 这是代码的更新版本本指南
  • 如何获得相机旋转? (阿鲁科图书馆)

    我一直在尝试了解下载 Aruco 库时包含的 aruco test cpp 程序的输出 输出具有以下格式 22 236 87 86 4296 422 581 78 3856 418 21 228 032 261 347 228 529 Tx