Python 由单应矩阵求本质矩阵
在我的Python/OpenCV代码中,我使用随机同音字来模拟视点变化(我正在评估兴趣点检测器,希望避免搜索图像对) 有没有可能计算出一幅图像与其扭曲版本之间的极线和基本矩阵?我仅有的信息是我应用的单应性 还有其他一些帖子和我的问题有点相关:,,但我不知道如何做单应矩阵->基本矩阵 如果我想做的没有意义,请告诉我为什么Python 由单应矩阵求本质矩阵,python,opencv,homography,Python,Opencv,Homography,在我的Python/OpenCV代码中,我使用随机同音字来模拟视点变化(我正在评估兴趣点检测器,希望避免搜索图像对) 有没有可能计算出一幅图像与其扭曲版本之间的极线和基本矩阵?我仅有的信息是我应用的单应性 还有其他一些帖子和我的问题有点相关:,,但我不知道如何做单应矩阵->基本矩阵 如果我想做的没有意义,请告诉我为什么 谢谢我认为您不需要基本矩阵:“基本矩阵包含与基本矩阵相同的信息,此外还包含关于两个摄像头的本质的信息,以便我们可以在像素坐标中关联两个摄像头。” 可以帮助您了解如何从单应性计算极
谢谢我认为您不需要基本矩阵:“基本矩阵包含与基本矩阵相同的信息,此外还包含关于两个摄像头的本质的信息,以便我们可以在像素坐标中关联两个摄像头。” 可以帮助您了解如何从单应性计算极线。首先,您需要找到几个点来输入cv.findFundamentalMat。这些点可以从单应矩阵计算-只需取八个或更多随机点(
pts1
)并将单应矩阵应用于它们(pts2
)
最后,您可以从相应的图像中找到epilines参数:
epilines1 = cv.computeCorrespondEpilines(pts2.reshape(-1,1,2), 2, F)
epilines2 = cv.computeCorrespondEpilines(pts1.reshape(-1,1,2), 1, F)
您认为可以通过这种方式生成立体图像对的假设是有缺陷的。 您需要两个具有不同投影中心的图像(即相机必须移动) 应用于现有图像的二维单应不会更改投影中心。可以模拟围绕摄影机中心的三维旋转,而不是平移 直观地说,要定义极线几何体,您需要一个基线。基线通过两个摄影机中心。如果有两个具有相同摄影机中心的图像,则不定义基线。您无法从这些图像中获得视差或深度信息。设置中既没有定义基本矩阵,也没有定义基本矩阵
从数学上看,考虑到你的投影矩阵P的1D零空间在均匀坐标
中给出了相机中心C。C=null(P)
与
现在对于扭曲的图像,您仍然有
H*P*C = H*0 = 0
同一个摄像机中心
P*C = 0
H*P*C = H*0 = 0