问题标签 [extrinsic-parameters]
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.
camera-calibration - 如何从目标平面中的三个已知维度计算相机外参
我的问题如下。
单个摄像机(位置和方向都保持不变)用于监控远处平面目标的运动。包括焦距、传感器分辨率、主点在内的内在参数是已知的。不考虑镜头畸变。
在世界系统中,关于目标(在平面内)的三个维度是已知的。我想知道确定相机外参是否足够。如果是,如何计算?
非常感谢。
opencv - 为什么 OpenCV 在校准函数中只有 6 个外部参数?
我使用 Opencv 示例代码来进行相机校准。据我所知,外部参数有 12 个元素,但在 OpenCV 中,旋转矢量和平移矢量的总和为 6。
为什么 OpenCV 只有 6 个参数?
http://docs.opencv.org/2.4/_downloads/camera_calibration.cpp
computer-vision - 外部相机参数是否被归类为旋转矩阵?
我一直在阅读 Prince 的书Computer Vision: Models, Inference, and Learning,特别是为了理解相机参数和姿态估计问题,我在外部相机参数方面遇到了一些麻烦。据我了解,外部相机参数由旋转矩阵和平移向量组成。旋转矩阵将世界坐标系转换为相机坐标系。我的问题是旋转矩阵是否是严格意义上的旋转矩阵;因为它是正交的并且具有行列式 1。
我之所以问,是因为在随后的几何变换章节中,他描述了相机正在查看平面(w/z 坐标 = 0)的情况,并介绍了由外在相机矩阵表示的仿射和投影变换。我很困惑,因为使用旋转矩阵无法实现这样的转换,还是我错了?一般糊涂
matlab - Matlab检测CheckerboardPoints不完美
我最近使用 Matlab Single Camera Calibration App算法来校准相机的内在和外在。在找到棋盘的角落时,Matlab 的功能多次detectCheckerboardPoints
执行(准确度)opencv api cv::findChessboardCorners
,但在某些图片上,Matlab 的行为很奇怪。
例如,在下图中,棋盘格之间的角清晰可见,而 matlab 在奇怪的地方发现多余的角:
matlab 代码片段很简单,如下所示:
- 在这张图片上用(下面的代码)检测到的角
opencv
非常精确:
//opencv代码:
camera - 来自基本矩阵的相机矩阵
我正在尝试从基本矩阵中提取相机矩阵。我找到了一些关于这个的答案。
在这些答案中,他们建议我使用newE
where[U,S,V] = svd(E)
和newE = U*diag(1,1,0)*Vt
. 我不明白为什么我需要使用newE
. 据我所知,奇异值是独一无二的。因此,将奇异值更改为diag(1,1,0)
似乎会产生E
完全不同的值。
我还阅读了“计算机视觉中的多视图几何”,但它只是指理想情况,即奇异值是 (1,1,0)。我没有找到使用的原因newE
。
请谁能解释我为什么人们使用newE
?
opencv - 使用opencv进行多摄像头校准:两个摄像头面对面
我想计算两个相机的外部校准,并使用 cv::stereoCalibrate() 函数来执行此操作。然而,结果与现实并不相符。有什么问题?
设置:两台摄像机安装在 7 米高处,向下看时面对面。他们有很多视野交叉点,我捕获了我在校准中使用的棋盘图像。
我没有翻转任何图像。
我需要翻转图像吗?还是我需要做其他事情来告诉相机实际上是面对面的?
注意:相同的功能可以完美校准彼此相邻且朝向相同方向的摄像机(就像任何典型的立体摄像机一样)。
谢谢
opencv - 为什么直接线性变换 (DLT) 不能提供最佳的相机外在参数?
我正在阅读solvePnP()
OpenCV 中函数的源代码,当flags
参数使用默认值SOLVEPNP_ITERATIVE
时,它正在调用cvFindExtrinsicCameraParams2
,其中它首先使用DLT算法(如果我们有一组非平面的 3D 点)来初始化 6DOF 相机姿势,和 SECOND 用于CvLevMarq solver
最小化重投影误差。
我的问题是:DLT 将问题表述为线性最小二乘问题并用 SVD 分解来解决,这似乎是一个最优解,为什么我们之后仍然使用 Lev-Marq 迭代方法?
或者,DLT 算法劣势的问题/限制是什么?为什么封闭形式的解决方案会导致成本函数的LOCAL最小值?
point-cloud-library - 如何在openni2中获取相机内在和外在?
我有一个 Primesense 胭脂红 1.08 和胭脂红 1.09。我需要 RGB 和 IR 相机的内在参数以及两者之间的外在参数。我使用支持 openni2 的 pcl。所以我需要知道openni2/pcl使用的传感器参数。
在 openni2 中有没有办法使用 openni2/pcl 找到内在函数和外在函数?Libfreenect2 可以选择获取 IR 和彩色相机内在函数,但这些参数与 openni 中的参数相同吗?所有这些参数是否在运行时从传感器中提取出来?
我试图通过 pcl 得到它,但我得到的是焦距和主要点的 nan
一个类似的问题已经被问到here https://stackoverflow.com/questions/41110791/openni-intrinsic-and-extrinsic-calibration
。然而,它还没有收到任何答复。