问题标签 [camera-calibration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1747 浏览

c - 以像素为单位确定棋盘尺寸

类似于用棋盘校准单个相机 2D 图像,我希望以像素为单位确定棋盘(或单个正方形)的宽度/高度。

我有一个垂直对准地面的相机,确保与下面的表面完全齐平。我正在使用相机来确定连续帧之间的平移(使用傅立叶相位相关成功实现),目前我的结果返回以像素为单位的平移,但是我想使用类似于校准的技术,我将相机移动到棋盘平放在地面上,以相对于我的图像高度和宽度自动确定棋盘的大小(以像素为单位)。

以毫米为单位知道棋盘的大小,然后我可以将像素单位转换为以毫米为单位的现实世界单位,即,1 个像素将代表与地面上相机高度成比例的距离。这将允许我以像素为单位的转换转换为以毫米为单位的转换,每次我改变相机的高度时都重新校准。

实现这一目标的推荐方法是什么?当然,它一定比单相机 2D 校准更简单。

0 投票
3 回答
6944 浏览

c++ - 用于 3D 重建的 OpenCV 未校准相机校正

我正在运行 OpenCV 2.4.2。

我的项目包括一个 3D 人脸识别。

我正在尝试从未经校准的相机拍摄的一对图像创建一个 3D 模型。
我的目标是获得一些用于识别过程的 3D 特征。

我正在尝试校准和校正相机,但没有得到好的结果。
我做了这些步骤:

  • 从 2 张图像中提取 SURF 特征
  • 发现 2 个图像特征之间的对应关系
  • 计算基本矩阵感谢findFundamentalMat
  • 用于stereoRectifyUncalibrated获取单应矩阵
  • warpPerspective与第一个图像和第一个单应矩阵一起使用以查看结果。

我得到了一个非常糟糕的结果,我现在不知道该怎么办......

那个算法对吗?有什么建议吗?

我可以使用什么样的 3D 功能来获得更好的人脸识别?

这里是校准代码:

0 投票
1 回答
305 浏览

opencv - 如何解释校准结果(OpenCV)

我用棋盘进行了校准(我以毫米为单位定义了角的大小)。现在,校准(矩阵旋转平移)的结果是否以 mm 为单位?

0 投票
1 回答
2450 浏览

opencv - OpenCV中相机校准期间的错误

我正在使用opencv进行相机校准。我正在使用“烹饪书编程”中给出的相同代码。

我正在用智能手机拍摄棋盘的照片。然后我正在使用 opencv 程序为我进行相机校准。当我有非常大的棋盘时,程序只适用于一组图像。它不适用于其他图像集,并且我收到运行时错误“断言失败 在此处输入图像描述

我不知道我的代码出了什么问题。代码如下:-

在相机校准类中,它成功打开图像,但在 findChessboardCorners 行上失败。. .

请帮助我。一个示例棋盘图像如下。该算法在第一张图像上无法找到角点。. . . :-在此处输入图像描述

0 投票
2 回答
3263 浏览

matlab - 相机标定MATLAB工具箱

我必须重新投影我的 3D 点(我已经有来自 Bundler 的数据)。

我在 MATLAB 中使用相机校准工具箱来获取相机的内在参数。我从 27 张图像中得到了这样的输出(棋盘;图像是从不同角度拍摄的)。

注:数值误差约为标准偏差的三倍(供参考)。

我想知道数值误差,即焦距误差 +- [23.13283 22.92478] 、主点误差等。这些误差数字实际代表什么以及它们的影响是什么?

像素误差真的很小。

到目前为止,我使用上述数据中的以下矩阵进行重新投影:

K=[ 2104.11696 0 969.15779; 0 2101.75357 771.30555;0 0 1]

上面的矩阵“K”对我来说似乎是正确的。如果我做错了什么,请纠正我...

将等待您的回复。

0 投票
0 回答
2269 浏览

c++ - opencv findchessboardcorners 断言失败

我正在尝试在 Windows 7 + MinGW 环境中使用 OpenCV 2.4.2 检测用于相机校准的棋盘图案。

调用 findChessboard() 函数时出现断言失败。只有当棋盘出现在摄像机的视野中时,才会发生断言。

OpenCV 错误:setSize 中的断言失败 (s >= 0),文件 C:\opencv\modules\core\src\matrix.cpp,第 115 行

我也尝试了 sample\cpp\calibration.exe 并在那里得到相同的结果。示例源代码可以在这里找到:

http://code.opencv.org/projects/opencv/repository/revisions/c5aba337e995eef92704201be2e37773a63b3709/entry/samples/cpp/calibration.cpp

查看第 468-469 行:

我自己的代码如下所示:

如上所述,控制永远不会到达 cout 语句。findChessboardCorners 没有找到任何东西(返回 false)或断言(当检测到棋盘图案时)。

0 投票
2 回答
934 浏览

opencv - 在 opencv 中使用自动对焦网络摄像头进行立体设置

我确实有一个带有两个网络摄像头的立体声设置。问题是,如果这些相机拥有自动对焦技术,会不会有任何问题。如果是,请详细说明问题及其解决方案。

这对相机校准有影响吗?

0 投票
0 回答
1998 浏览

opencv - opencv给出相机姿势 - rvec和tvec - 坐标系不匹配

我需要找到相机的姿势(旋转矩阵+平移向量),为此我正在使用cv2.solvePnP(),但我从照片中得到的结果不匹配。

为了调试,我(使用 numpy)创建了一个“调试 3d 场景”,由一些对象点(正方形的四个角)、一些相机点(焦点、主点和虚拟投影平面的四个角)和参数组成(焦距,初始方向)。

然后,我通过乘以三个轴旋转矩阵来构造一个通用旋转矩阵,将这个通用旋转应用于相机(numpy.dot()),将对象点投影到虚拟投影平面(线平面相交算法),并计算平面内二维坐标(点线距离)到投影平面轴。

这样做之后(通过旋转矩阵将对象点指向图像点),我将图像点和对象点输入cv2.Rodrigues(cv2.solvePnP(...))并得到一个与我使用的矩阵“不太相同”的矩阵,只是因为转置和一些具有相反信号的元素(负与正) ,尊重这种关系:

虽然旋转矩阵不匹配是“可解决的”这个黑客,但翻译向量给出的坐标对我来说没有意义。

我怀疑我的 3D 模型(惯用手、轴方向、旋转顺序)与 opencv 使用的模型不匹配:

  • 我使用类似OpenGL的坐标系(X向右增加,Y向上增加,Z向观察者增加;
  • 我以对我更有意义的顺序应用了旋转(所有右手,首先围绕全局 Z,然后围绕全局 X,然后围绕全局 Y);
  • 图像平面位于物体和相机焦点之间(虚拟投影平面,而不是真实/CCD);
  • 我的图像平面(虚拟 CCD)的原点是左下角(Xpix 向右增加,Ypx 向上增加。

我的问题是:

鉴于旋转矩阵的项是相同的,只是转置并且在某些术语中具有不同的信号,我是否可能混淆了一些openCV约定(用手习惯、旋转顺序、轴方向)?我怎样才能发现是哪一个?

另外,有没有办法将我的手工翻译向量与返回的 tvec 联系起来solvePnP?(当然,理想情况下,最好首先使坐标系匹配)。

任何帮助都将受到欢迎!

0 投票
2 回答
37470 浏览

opencv - 如何验证网络摄像头校准的正确性?

我对相机校准技术完全陌生……我正在使用 OpenCV 棋盘技术……我正在使用 Quantum 的网络摄像头……

这是我的观察和步骤..

  1. 我保持每个国际象棋正方形边 = 3.5 厘米。它是一个 7 x 5 棋盘,内有6 x 4 个角。我在距网络摄像头 1 到 1.5 m 的距离处总共拍摄了 10 张不同视图/姿势的图像。
  2. 我正在按照Bradski的Learning OpenCV中的 C 代码进行校准。我的校准代码是

    /li>
  3. 在调用此函数之前,我将沿固有矩阵的对角线的第一个和第二个元素设为一个,以保持焦距比恒定并使用CV_CALIB_FIX_ASPECT_RATIO

  4. 随着棋盘距离的变化,和fx几乎等于1。当我改变距离时,和的值在200到400之间。和在300到700之间。fyfx:fycxcyfxfy

  5. 目前我已经把所有的失真系数都归零了,因为我没有得到包括失真系数在内的好结果。我的原始图像看起来比未失真的图像帅!

我是否正确进行校准?CV_CALIB_FIX_ASPECT_RATIO我应该使用除?之外的任何其他选项。如果是,是哪一个?

0 投票
0 回答
481 浏览

android - 在android中校准相机

1.有没有办法在android中获取相机的校准矩阵(仅使用Android API)?

2.我可以从API找到焦距和视角。这些足以计算相机矩阵吗?