Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Computer vision 摄像机投影矩阵正确重投影,但提取的固有值不正确_Computer Vision_Camera Calibration - Fatal编程技术网

Computer vision 摄像机投影矩阵正确重投影,但提取的固有值不正确

Computer vision 摄像机投影矩阵正确重投影,但提取的固有值不正确,computer-vision,camera-calibration,Computer Vision,Camera Calibration,我想将图像空间中的三维点转换为二维点。根据hartley和zisserman的书《多视图几何》,我们只需要6个点就可以用DLT计算相机投影矩阵,我做到了。有了这个矩阵,我可以准确地重新投影这些点 虽然投影矩阵工作正常,但从中提取的内在参数却不正常,每次都会偏离几毫米 下面是我能够提取的内在参数的示例 10502.9 , -257.128 , 1831.12 0 , 10425.8 , -390.996 0 , 0 , 1 我的相机的传

我想将图像空间中的三维点转换为二维点。根据hartley和zisserman的书《多视图几何》,我们只需要6个点就可以用DLT计算相机投影矩阵,我做到了。有了这个矩阵,我可以准确地重新投影这些点

虽然投影矩阵工作正常,但从中提取的内在参数却不正常,每次都会偏离几毫米

下面是我能够提取的内在参数的示例

10502.9 , -257.128 , 1831.12 

0      ,  10425.8  ,  -390.996

0      ,   0     , 1        
我的相机的传感器尺寸/像素为1.85um,因此我使用固有参数计算的焦距约为19mm,但根据供应商规范,焦距约为16mm

我想澄清一些疑问

  • 焦距的计算正确吗?为什么内在参数中的某些值为负值

  • 6点真的足以创建相机模型吗?即使我的相机投影矩阵工作正常,为什么提取的内在参数仍然不正确


  • 谢谢。

    您对焦距的计算是一阶近似值,因为它忽略了非线性失真。此外,您的结果有一个相当大的非对角线值(-257.1,或焦距的~2.5%),这看起来很可疑

    六分只是最低要求。您通常遵循一个校准程序,该程序自动检测并匹配已知几何体(例如平面棋盘)校准目标(也称为“装备”)上图像中的大量点。这样做的效果是在最小二乘意义上“平均化”误差。校准优化器通常也会使用稳健器(尝试)移除或降低错误的点检测/匹配(“异常值”)。该程序适用于通常包含非线性畸变项的透镜模型


    您可能需要检查有关适当程序的更多详细信息。

    我可以问一下如何解释歪斜值-257.1,并且在获得的参数中有一些负值是否正常?这取决于图像轴彼此和焦点轴的正交程度。零表示完全正交轴。从物理上讲,非零倾斜是由传感器平面与焦轴不完全垂直引起的。这可能是因为传感器有意倾斜(例如,在为建筑摄影设计的某些类型的相机中),或者因为镜头安装下垂。在一些便宜的镜头中,由于齿轮的齿隙,聚焦会使镜头倾斜。我们在我们的相机系统中使用了Scheimpflug。这会影响计算的参数吗?