相机标定(OpenCV 2.3)-如何使用畸变参数?

2024-05-07

我有一组带有一些附加标记的刚体图像。我在这些标记之一中定义了一个原点坐标系,我想获得该坐标系与在相机原点定义的坐标系之间的旋转和平移。

我尝试了一段时间 POSIT (以下this http://goo.gl/cUYYt)但从未获得可接受的结果,直到我意识到我必须首先校准相机。基于this http://goo.gl/snf7E并使用通过校准体获取的一些图像,我得到了相机本征矩阵和畸变参数。我还得到了 1.276 的严重(?)重投影误差。

  1. 重投影误差是否太大?我该如何改进它? (我使用了更多图像,只是实现了值的轻微下降)。
  2. 我可以在 POSIT 中使用畸变参数吗?如何?

Thanks.


似乎减少重投影误差(从 ~1.3 变为 ~0.7)的唯一方法是将 XML 配置文件中的以下参数设置为“0”:

<Calibrate_FixAspectRatio> 0 </Calibrate_FixAspectRatio>
<Calibrate_AssumeZeroTangentialDistortion> 0 </Calibrate_AssumeZeroTangentialDistortion>
<Calibrate_FixPrincipalPointAtTheCenter> 0 </Calibrate_FixPrincipalPointAtTheCenter>

使用更多图像不会改变错误,我仍然不确定这个新错误是否可以接受。

我在 POSIT 中使用校准给出的值作为输出(即焦距和光学中心),但结果与使用预校准值时得到的结果非常相似。我没有使用失真参数,因为我不知道如何在 POSIT 中处理它们(它们会对结果产生影响吗?)。

标定后得到的相机矩阵:

<Camera_Matrix type_id="opencv-matrix">
<rows>3</rows>
<cols>3</cols>
<dt>d</dt>
<data>
2.0613885351075501e+003 0. 2.2865517805186334e+002 0.
2.2546461307897816e+003 2.5261706201677623e+002 0. 0. 1.
</data>
</Camera_Matrix>

以及我在 POSIT 中使用它的方式:

#define FOCAL_LENGTH 2158.0175
#define FOCAL_LENGTH_X 2061.389 
#define FOCAL_LENGTH_Y 2254.646
#define cX 203.655
#define cY 205.117

我计算了新的中心坐标与校准图像的中心坐标之间的差异,然后将该差异应用于我正在使用 POSIT 的图像的中心坐标。

我在两个不同的图像上使用 POSIT,理论上我应该在模型和相机坐标系之间获得 0(第一个)和 10(第二个)度的旋转。获得每个图像的旋转矩阵后,我在相机坐标系上定义了一个单位向量,并通过将其乘以 POSIT 给出的两个旋转矩阵的逆来在模型坐标系上计算它,从而在模型中得到两个新向量坐标系。当我计算模型坐标系中这两个向量之间的角度时,输出不是应有的 - 10 度。

有谁知道我哪里出错了?


图像分辨率是多少?主点应靠近图像中心。镜头的焦距是多少?根据您需要的精度,校准误差可能会很小。 为了避免镜头畸变引入的错误,您应该使用 un DistactPoints 对传递到 POSIT 的图像点进行去畸变处理。这个误差有多大取决于你的镜头畸变有多大。

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

相机标定(OpenCV 2.3)-如何使用畸变参数? 的相关文章

随机推荐

  • 如何将带小数点的字符串解析为双精度型?

    我想解析一个字符串 3 5 到一个双倍 然而 double Parse 3 5 产量 35 和 double Parse 3 5 System Globalization NumberStyles AllowDecimalPoint 抛出一
  • Spring AOP生成的代理类的位置

    只是为了学习和理解代理 我想看看Spring AOP生成的代理类 它不存在于 Eclipse 生成的类文件夹中 有人可以告诉我它的位置吗 如果您使用基于接口的代理 默认 Spring 使用Proxy http docs oracle com
  • IOS 7 UITextField resignFirstResponder 坏

    当我在自定义单元格内使用 UItextField 时 以及当我 resignFirstResponder 文本字段时 我发生崩溃 但它不再可见 表视图滚动到窗口外 我仍然可以找到文本字段 指针继续可访问 它不为空 并且崩溃仅发生在 IOS7
  • WebKit 是否使用 OpenGL 来渲染 CSS 过渡?

    WebKit 是使用 OpenGL 来渲染 CSS 过渡 还是使用软件渲染 WebKit 只是一个前端 这取决于后端和硬件支持 谷歌浏览器使用skia http code google com p skia 作为后端 它可以使用软件或硬件
  • 格式化 mlogit 的数据

    为了通过 mlogit 进行多项 Logit 分析 我正在经历一段艰难的时间来整理我的数据集 我的数据集可从url https raw githubusercontent com sjkiss Survey master mlogit ou
  • 使用三元运算符“不执行任何操作”[重复]

    这个问题在这里已经有答案了 我想像这样使用三元运算符 仅检查true声明的一部分 foo bar Do nothing 是否可以排除该语句的 else 部分的逻辑 我尝试使用return 但编译器给出了错误 基本上我想要实现的是使用三元运算
  • 具有多个输入的 Keras TimeDistributed 层

    我正在尝试使以下代码行正常工作 low encoder out TimeDistributed AutoregressiveDecoder X tf embeddings Where AutoregressiveDecoder是一个需要两个
  • 使用 'gitbranch' 命令显示当前 git 分支

    我在处理太多分支时遇到问题 需要花费很多时间才能找到我现在正在处理的当前分支 有没有办法在使用时显示的列表顶部列出当前分支git branch命令 如果您只想要签出分支 请使用git branch show current
  • 在 git 中编辑分支?

    我在 github 网站上创建了一个分支 该分支不在我的本地存储库中 如何将该分支带到我的本地计算机 对其进行编辑 然后将其推送回我的 github 帐户 在本地工作目录中输入 git fetch origin newbranch git
  • Android FAB 图标始终为黑色,带有 MaterialComponents 主题

    我正在创建一个 Android 应用程序 并使用 AndroidX 库和 Material design 主题 我的应用程序主题为styles xml is 我有来自自定义库的以下 F
  • iOS 中 NSNotificationCenter 的 if 语句

    我正在尝试在一个动画结束时开始另一个动画 我正在检查这样的回调 NSNotificationCenter defaultCenter addObserver self selector selector animationDidStopNo
  • 设置rgl设备的大小

    我的 rgl 设备的全屏 非全屏有问题 目前我使用R 3 00 我将 persp3d 图 库 rgl 绘制到我的设备中 它在一个非常小的窗口中打开 R代码 persp3d x y z theta 50 phi 25 expand 0 75
  • 如何使用 git-svn 使 svn:external 保持最新?

    将我的存储库视为 SVN 存储库 我得到 svn co http myrepo foo trunk foo foo bar baz gt http myrepo baz trunk 将其视为 Git 存储库 我得到 git svn clon
  • 将对象序列化为自定义字符串格式以在输出文件中使用的最佳实践

    我正要在特定的业务类上实现 ToString 的重写 以便生成 Excel 友好的格式来写入输出文件 稍后将拾取并处理该输出文件 数据应如下所示 5555555 LASTN SR FIRSTN 5555555555 13956 STREET
  • 更改 Office UI Fabric React 组件的颜色/主题?

    我正在尝试使用Office UI Fabric React 组件 https dev office com fabric components在我的网络应用程序中 有没有办法改变组件的颜色或主题 例如 我尝试了这样的事情 ReactDOM
  • 在 uwsgi 应用程序中运行子进程

    我正在编写一个 Django 应用程序 它需要执行长时间的异步任务 最初的想法是从执行该工作的视图启动一个子流程 并在另一个视图中监视进度 当应用程序通过以下方式启动时 这个想法运行良好manage py runserver 但是当它在 u
  • JavaScript RegEx 到 CamelCase 连字符的 CSS 属性

    我正在尝试更改 CSS 属性 如下所示 moz border radius 像这样的 JavaScript CSS 属性 MozBorderRadius 我正在使用这个正则表达式 var exp new RegExp a z gi cons
  • Laravel 5 / Lumen 请求标头?

    所以我不太确定如何解决这个问题 我已经尝试了一些方法 我将在下面列出其中之一 但是我想要做的是将 http 请求中发送的信息存储在 PHP 变量中 这是 Chrome Postman 发送我想要发送的请求的视图 注意 pubapi 是一个
  • pytest - 如何将 pytest_addoption 值传递给 pytest 参数化?

    我必须在我存储在 pytest 中的 pytest 命令中传递一个参数addoption 我想在 pytest 中使用这些值parametrize功能 Command pytest range from 3 range to 5 test
  • 相机标定(OpenCV 2.3)-如何使用畸变参数?

    我有一组带有一些附加标记的刚体图像 我在这些标记之一中定义了一个原点坐标系 我想获得该坐标系与在相机原点定义的坐标系之间的旋转和平移 我尝试了一段时间 POSIT 以下this http goo gl cUYYt 但从未获得可接受的结果 直