OpenCv StereoRectify 中矩阵的精确定义

2023-11-26

通常投影矩阵的定义P是 3x4 矩阵,它将点从世界坐标投影到图像/像素坐标。投影矩阵可以分解为:

  • K:具有内在参数的 3x4 相机矩阵 K
  • T:带有外部参数的 4x4 变换矩阵

那么投影矩阵就是P = K * T.

OpenCV 的stereoRectify 的以下输入的明确定义是什么:

  • cameraMatrix1 – 第一个相机矩阵(我假设它是投影矩阵的固有 K 部分,对吗?).
  • R – 第一和第二相机坐标系之间的旋转矩阵。(“之间”是什么意思?是从cam1到cam2还是从cam2到cam1的旋转?)
  • T – 相机坐标系之间的平移向量。(同上。是从cam1 -> cam2还是cam2->cam1翻译)
  • R1 – 第一个相机的输出 3x3 整流变换(旋转矩阵)。(这是校正后的旋转,因此投影矩阵的新外部部分变为 T1new = R1*T1old 吗?)
  • P1 – 在第一个相机的新(校正)坐标系中输出 3x4 投影矩阵。(“新坐标系中的投影矩阵”是什么意思?似乎该投影矩阵依赖于旋转矩阵 R1 将点从世界坐标投影到图像/像素坐标,因此从上面的定义来看,它既不是“投影矩阵”或“相机矩阵”,但两者的某种混合)

  1. 相机矩阵1- 是由 opencv 中的 Stereocalibrate() 函数计算得出的内在 K 矩阵。你做对了!!!
  2. R是凸轮 2 坐标系相对于凸轮 1 坐标系的旋转矩阵。相似地 ,T是 cam2 原点 w.r.t 的平移向量 凸轮1原点。
  3. 如果你看看 O'Riley 的书“LEARNING OPENCV”第-434页,你就会明白什么R1(/Rl) and R2(/Rr) are.

    Rl=[Rrect][rl]; Rr=[Rect][rr];

    设相机的像平面为plane1和plane2。当没有进行立体校正时,则plane1和plane2根本不平行。此外,外线不会与立体相机基线平行。因此,Rl 所做的是将左图像平面变换为与右图像平面平行(由 Rr 变换),并且两个图像上的外线现在是平行的。
  4. P1 and P2是立体校正后的新投影矩阵。请记住,相机矩阵 (K) 将 3d 空间中的点变换到 2d 图像平面上。但 P1 和 P2 将 3d 空间中的点变换到校正的 2d 图像平面上。
    如果您之前校准过立体摄像机装备并观察过 P1 和 K1 值,如果您的立体装备几乎处于校正配置(显然在人类范围内),您会发现它们非常相似

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

OpenCv StereoRectify 中矩阵的精确定义 的相关文章

  • 有人曾经在 MacOS 10.6 上使用过 OpenCV 和 Python 2.7 吗?

    在过去的 6 个月里 我一直断断续续地尝试让 OpenCV 在 MacOS 上与 Python 配合使用 每次有新版本发布时 我都会再次尝试并失败 我已经尝试过 64 位和 32 位 并且 xcode gcc 和 gcc 都是通过 macp
  • 当行大小大于向量宽度时 SIMD 转置

    你可以找到很多good https stackoverflow com a 25625919 149138 answers https stackoverflow com a 29587984 149138用于转置一个矩阵 该矩阵落在nat
  • OpenCV 旋转图像而不裁剪澄清

    我想扩展这个主题 参考用户 Lars Schillingmann 给出的这个 SO 问题和接受的答案 在 C 中的 OpenCV 中旋转图像而不裁剪 https stackoverflow com questions 22041699 ro
  • 如何确定透视变换后的点在新图像平面中的位置?

    我使用 OpenCV Python Numpy 图像中有三个点 我知道这些点的确切位置 P1 P2 N1 我要将图像转换为另一个视图 例如 我将透视图转换为侧视图 如果这样做 我将无法获得图像平面中这三个点的确切位置 我应该以一种可以获得这
  • 如何找到平面和 3d 矩阵之间的交平面

    如果我有一堆图像并且尺寸如下 size M 256 256 124 我有 3 个点 它们的坐标是 coor a 100 100 124 coor b 256 156 0 coor c 156 256 0 如何创建 M 与这 3 个点定义的平
  • 将yuv420p原始数据转换为opencv图像

    我有来自 rtmp 服务器的原始数据 像素格式为 yuv420p 我使用管道来读取数据 但我不知道如何将原始数据解码为图像 command ffmpeg command extend loglevel fatal i rtmp localh
  • 在OpenCV中将YUV转换为BGR或RGB

    我有一个电视采集卡 其输入内容为 YUV 格式 我在这里看到了与此问题类似的其他帖子 并尝试尝试所述的所有可能的方法 但它们都没有提供清晰的图像 目前最好的结果是 OpenCVcvCvtColor scr dst CV YUV2BGR 函数
  • 如何平滑循环列向量

    这是一个 OpenCV2 问题 我有一个矩阵代表closed空间曲线 cv Mat
  • 将向量 转换为大小为 (n x 3) 的 Mat,反之亦然

    我有 Point3d 向量 向量形式的点云 如果我使用 OpenCV 提供的转换 比如 cv Mat tmpMat cv Mat pts Here pts is vector
  • R 中的快速 QR 分解

    我有大量矩阵 需要对其执行 QR 分解并存储生成的 Q 矩阵 进行归一化 以便 R 矩阵在其对角线上具有正数 除了使用之外还有其他方法吗qr 功能 这是工作示例 system time Parameters for the matrix t
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • Opencv C++ 检测并裁剪图像上的白色区域

    我在网上搜索过 已经找到了一些方法来完成我想要的事情 但是与我需要的相比 这些方法的效率较低 我有一个 kinect 使用 Microsoft SDK 当前正在获取一个移除背景的人 将结果保存在 3 通道 Mat 中 并将该人从背景中移除
  • 在重载算术运算符中调用 C++ 析构函数

    我有一个用于神经网络程序和重载算术运算符的定制矩阵库 这是类声明 class Matrix public int m int n double mat Matrix int int Matrix int Matrix const Matri
  • MATLAB:在不使用循环的情况下提取矩阵的多个部分

    我有一个巨大的 2D 矩阵 我想从中提取 15 个不同的 100x100 部分 我有两个向量 x 和 y 其中保存了零件的左上角索引 我用过这样的东西 result cam1 x 1 end x 1 end 99 y 1 end y 1 e
  • flash 10 正交投影

    我一直在尝试新的 flash 10 3d 可能性 发现在 3d 中旋转精灵相当容易 var card Sprite new MyCard card x 100 card y 100 card z 200 card rotationX 60
  • 透视变换矩阵的计算

    给定 3D 空间中的一个点 如何计算齐次坐标中的矩阵 将该点投影到平面上z d 其中原点是投影中心 好吧 让我们尝试解决这个问题 扩展伊曼纽尔的答案 Assuming如果您的视图向量直接沿着 Z 轴 则所有尺寸都必须按视图平面距离的比例进行

随机推荐

  • 载波上传编码::UndefinedConversionError: "\xFF" 从 ASCII-8BIT 到 UTF-8

    在生产中遇到此错误 但无法找出问题出在哪里 同样的要求也适用于本地开发 但生产失败 我正在构建供移动客户端使用的 API 错误追踪 Encoding UndefinedConversionError xFF from ASCII 8BIT
  • Chrome 中的 JQuery 窗口宽度不正确

    我创建了一个插件 我已将其简化为插件的骨架 即没有功能 只有结构 来调试此问题 但它仍然存在 它处理调整 div 的大小并基于文档的宽度 问题是文档报告的宽度比实际宽度减少了 17px 因此无法正确调整 div 的大小 我已发出警报以找出问
  • 无法在 Angular4 GET 响应中查看“Content-Disposition”标头

    我正在尝试在我的 Angular 应用程序中下载 pdf 文件 服务器 JBoss 提供一个文件 Content type application pdf and Content Disposition 标题设置为附件 我可以在提琴手响应中
  • 如何统计git中每个文件被修改了多少次?

    我正在处理一个非常混乱的项目 我们已经计划重构它几个月了 但没有人有时间 我想查看哪些文件被修改最多 因为这些文件中包含的功能 代码将优先重构并提高我的工作效率 是否有可能在 git 中以表格式或其他形式获取自第一次提交或特定一周以来每个文
  • Symfony 2:在 ContainerAwareCommand 中禁用 Doctrine 事件监听器

    我正在使用在配置文件中注册的几个 Doctrine 侦听器来进行一些自动更新 created on updated on 时间戳等 目前 我已经实现了附加功能 需要将准备好的值存储在数据库中以便于搜索 我正在考虑更新 Symfony 命令来
  • 检查 Cocoa 中的两个文件是否相同

    如何在 Cocoa 中有效地检查两个文件是否相同 具有相同的数据 上下文 我正在编写一个程序 该程序接收文件作为输入 输入文件 并将其复制到目录中 如果目录已包含同名文件 同名文件 则仅当同名文件不同时才应使用新名称复制输入文件 您可以使用
  • bash:以块的形式处理文件列表

    那个设定 我有数百个文件 名称类似input0 dat input1 dat input150 dat 我需要使用一些命令来处理cmd 它基本上合并了所有文件的内容 这cmd将输出文件名作为第一个选项 然后是所有输入文件名的列表 cmd o
  • 在没有错误状态的情况下处理 iteratee 库中的异常

    我正在尝试编写一个枚举器来逐行读取文件java io BufferedReader using Scalaz7 的 iteratee 库 目前仅提供一个 非常慢的 枚举器java io Reader 我遇到的问题与我使用过的所有其他 ite
  • 如何以编程方式将 Flex TextArea 的插入符移动到末尾?

    在添加代码中的一些文本后 我试图将 Flex TextArea 中的插入符号移动到末尾 我查看了 TextArea 及其底层 TextField 的参考文档 但似乎没有提供方法来处理此问题 我尝试过的一种方法是将焦点设置到文本区域并调度 K
  • 旋转和裁剪

    我正在使用 PHP 旋转和裁剪图像 但显示黑色边框 我知道您可以更改背景颜色 但我想旋转和裁剪图像以填充整个图像 基本上类似于background size cover 左 CSS 与background size contain 正确的
  • Python 无法找到 lxml 模块

    我前段时间写了一个脚本 其中包含 from lxml import etree 但是 不幸的是它不再起作用了 如有疑问 我检查了安装 sudo apt get install python lxml sudo pip install lxm
  • 如何配置 iText 支持亚洲字符?

    我的 Java 应用程序使用 iText 创建 PDF 有时内容是亚洲的 这是行不通的 亚洲字符不可见 I found iTextAsian jar在iText下载页面上 但不知道如何使用它 目标是使用我最喜欢的字体作为默认字体 但是 当某
  • SignalR 2.0 超时连接

    我正在使用SignalR 但是存在超时问题 几分钟后超时消失 不起作用 我怎么能够在 SignalR 2 0 中设置超时连接 您可以在 Owin Startup 类中使用以下配置 Make long polling connections
  • 使用其他 Observable 过滤 RxJava Observable

    我正在使用 RxAndroid 2 0 1 和 RxJava 2 0 6 我有两个可观察量 一个返回Maybe
  • onClickListener 和 onItemClickListener 之间的区别

    Android ListViews 中的 onClickListener 和 onItemClickListener 有什么区别 这些有哪些不同的实现 ListView 为列表视图的每一行都有一个 Item Click 侦听器 但 onCl
  • Python 和 Selenium - 当带有换行符的 send_keys() 时避免提交表单

    我在用Python 3与硒 我们假设var whatever nelse 我的问题是当我使用elem send keys var 它在之后发送表格 任何 因为换行符 我如何将 whatever nelse 替换为whatever SHIFT
  • GraphHopper 车辆=汽车可以工作,但步行或自行车不起作用

    我对 GraphHopper 路由引擎稳定版本 0 5 有疑问 我可以在使用时获取路线vehicle car 但这失败了bike and foot 这是一个例子在 GraphHopper 地图上步行大约 3 分钟 这会在地图上产生结果 非常
  • 如何重写祖先的嵌套 Material UI 组件的样式?

    我正在使用外部库中的组件 该组件不允许我更改其大部分样式 但我想更改作为材质 ui 按钮的按钮的样式 在检查元素时 它清楚地显示了类MuiButtonBase root MuiIconButton root MuiIconButton co
  • asp.net-mvc:js文件中的剃刀'@'符号

    我有一个 csHtml razor 文件 其中包含一个 javascript 函数 该函数使用 Url ContentAjax URL 内部的 C 函数 我想将该功能移至 js从我的观点引用的文件 问题是 javascript 不 知道 符
  • OpenCv StereoRectify 中矩阵的精确定义

    通常投影矩阵的定义P是 3x4 矩阵 它将点从世界坐标投影到图像 像素坐标 投影矩阵可以分解为 K 具有内在参数的 3x4 相机矩阵 K T 带有外部参数的 4x4 变换矩阵 那么投影矩阵就是P K T OpenCV 的stereoRect