Matlab:极线在什么坐标系中?

时间:2014-07-10 16:52:28

标签: math computer-vision matlab matlab-cvst

基本上,我在一个图像中(在像素坐标中)有一个点,在另一个图像中有相应的epiline,由Matlab的epipolarLine()函数给出(我也有所有的内在函数,外在函数,基本矩阵)。另外,我确切地知道该图像中哪一行对应的点 - 因此,在数学上可以通过将行与epiline相交来找到匹配点。但是,我对所涉及的不同坐标系非常困惑,并将它们混合起来。

我尝试使用整数行值作为x在极线中Ax + By + C = 0并求解为y,但我得到了一个十进制答案(小数部分在.3-.6范围内,所以舍入不是&# 39;有意义)。不应该相应的y值也是整数吗?

但是,我不知道极线的坐标系是什么.Matlab是否以像素坐标,第二个摄像机坐标或第一个摄像机坐标返回线?此外,像素坐标中的(x,y)是否对应于图像中的(row,col)或(col,row)?

1 个答案:

答案 0 :(得分:0)

极线以像素为单位定义在图像坐标中。如果您查看documentation for epipolarLine中的示例,您会看到线方程是以像素为单位定义的。

(x,y)对应(col, row)。有关详细信息,请参阅documentation。因此,如果您知道相应点的行,那将是y值,而不是x。看来你有一个错误。

就你所获得的分数位置而言,绝对没有错。可以这样想:你有一个3D世界点,它恰好投射到图像1中具有整数坐标的2D点上。没有什么说图像2中的相应2D点也必须具有整数坐标。事实上,在两个图像中,3D点投射到具有整数坐标的2D点的可能性极小。

出于好奇,你怎么知道相应点的行?