Matlab 已知旋转和平移的极线

Matlab 已知旋转和平移的极线,matlab,computer-vision,Matlab,Computer Vision,我想计算两幅图像之间兴趣点的极线。我正在处理喷泉数据集,所以我有旋转和平移矩阵,以及相机矩阵。我目前使用Matlab是为了快速,但是我的版本很旧(2009) 我通过E=t*R和l=E*p的极线计算基本矩阵,其中p是兴趣点/兴趣点集。然后我得到一个有三条线的向量,我猜这是ax+by+c=0的线参数。右图上画的极线完全错误,远离左图上的点。有什么想法吗 编辑:使用的数据集-->喷泉基准,图像0000和0001 输出:基本矩阵,例如点P1=[433.36;861.15;1] E= 它有两个共轭的复特征

我想计算两幅图像之间兴趣点的极线。我正在处理喷泉数据集,所以我有旋转和平移矩阵,以及相机矩阵。我目前使用Matlab是为了快速,但是我的版本很旧(2009)

我通过E=t*R和l=E*p的极线计算基本矩阵,其中p是兴趣点/兴趣点集。然后我得到一个有三条线的向量,我猜这是ax+by+c=0的线参数。右图上画的极线完全错误,远离左图上的点。有什么想法吗

编辑:使用的数据集-->喷泉基准,图像0000和0001

输出:基本矩阵,例如点P1=[433.36;861.15;1]

E=

它有两个共轭的复特征值

极线:1.0e+004*

0.206660143270238 0.023299771007641
-4.240274401559348

在线上可以找到许多解释极线几何结构以及如何在立体图像中找到极线的文档。这是。它会引导你正确地理解不同的概念。我发现,这个主题的诀窍在于跟踪变量,这些变量最终是矩阵变换和隐含的(教授快捷方式)algabraic运算的结果

我的建议是查看我提供的链接的第12页,并将其应用到您的场景中。如果没有您提供的描述以外的任何数据,就不可能解决问题

祝你好运


注意:很抱歉听到你的Matlab版本是旧的。我知道2013年已经为这些东西内置了函数,但我不确定2009年是否会,因为MathWorks需要一个帐户来阅读较旧的文档。

可以在网上找到很多文档,解释极线几何以及如何在立体图像中找到极线。这是。它会引导你正确地理解不同的概念。我发现,这个主题的诀窍在于跟踪变量,这些变量最终是矩阵变换和隐含的(教授快捷方式)algabraic运算的结果

我的建议是查看我提供的链接的第12页,并将其应用到您的场景中。如果没有您提供的描述以外的任何数据,就不可能解决问题

祝你好运


注意:很抱歉听到你的Matlab版本是旧的。我知道2013年已经为这些东西内置了函数,但我不确定2009年是否会,因为MathWorks需要一个帐户来阅读旧文档。

最终我找到了解决问题的方法。我把它贴在这里,以防其他人感兴趣

为了正确计算相对旋转和平移矩阵,必须使用旋转平移矩阵。该矩阵是每个图像的4x4矩阵。左上部分为旋转(wrt为世界坐标系),第四个子列为平移向量(wrt为世界坐标系),最后一行为[01]。因此,如果我们有两个这样的矩阵用于两幅图像,那么最终的旋转平移矩阵是Qright-->left=inv(Qright)*Qleft。从该矩阵中,我们提取相对平移(t)和旋转(R)(分别为第四个子列和左上矩阵)。然后,我们创建斜对称矩阵T进行平移。极线矩阵是E=R*T,但这还不够。为了正确计算极线,必须找到基本矩阵F。对于一个给定的数据集,比如我使用的数据集,摄像机矩阵K被给出,这很简单:F=inv(Kright')*E*inv(Kleft),其中(')是转置矩阵,inv是反转矩阵。然后,右图像的极线被计算为直线=F*P,其中P是齐次坐标中的点


谢谢大家!

我终于找到了解决问题的办法。我把它贴在这里,以防其他人感兴趣

为了正确计算相对旋转和平移矩阵,必须使用旋转平移矩阵。该矩阵是每个图像的4x4矩阵。左上部分为旋转(wrt为世界坐标系),第四个子列为平移向量(wrt为世界坐标系),最后一行为[01]。因此,如果我们有两个这样的矩阵用于两幅图像,那么最终的旋转平移矩阵是Qright-->left=inv(Qright)*Qleft。从该矩阵中,我们提取相对平移(t)和旋转(R)(分别为第四个子列和左上矩阵)。然后,我们创建斜对称矩阵T进行平移。极线矩阵是E=R*T,但这还不够。为了正确计算极线,必须找到基本矩阵F。对于一个给定的数据集,比如我使用的数据集,摄像机矩阵K被给出,这很简单:F=inv(Kright')*E*inv(Kleft),其中(')是转置矩阵,inv是反转矩阵。然后,右图像的极线被计算为直线=F*P,其中P是齐次坐标中的点


谢谢大家!

您遇到的问题可能来自很多方面:不理解概念、在Matlab中使用错误的操作、图像质量差等等。提供您正在处理的内容(代码、图像、输出等)的示例肯定会有所帮助。如果你的问题在我下班前还没有解决,我会尽力提供一个解决方案。谢谢!你是对的。问题已编辑。您遇到的问题可能来自许多方面:不理解概念、在Matlab中使用错误操作、图像质量差等。提供您正在处理的内容(代码、图像、输出等)的示例肯定会有所帮助。如果你的问题在我下班前还没有解决,我会尽力提供一个解决方案。谢谢!你是对的。问题编辑,谢谢!是 啊
0.761857065048902  1.969487475012598 40.418915885686594

-0.927781947178923 0.698934833377211 33.173562943087106

-45.044061511303227 -26.573128396975097 1.000000000000000