文章目录
1基础矩阵
1.1原理
对于一幅图像上的点x(图上p1),在另一幅图像上存在对极线l’,并且在第二幅图像上,与x匹配的点x’(点p2)必然在l’上。为了表示x与l’关系,我们令基础矩阵F定义为: l′=Fx。
假设第一幅图到第二幅图之间存在单应性变换H,则 x′=Hx。
又因为l’是表示过对极点e2和图像点x’的直线,可以表示为: l′=e2×x′=[e2]xx′=[e2]xHx。
所以可得 F=[e2]xH。
1.2.基础矩阵性质
(1) 基础矩阵是秩为2、自由度为7的齐次矩阵。
(2)若x与x’是两幅图上的对应点,那么x′TFx=0。
(3)l’是对应于x的对极线,l′=Fx。
(4)若e是第二个摄像机光心在第一幅图像上的极点,那么Fe=0 。
1.3计算F:八点法
八点法是通过对应点来计算基础矩阵的算法。
八点算法的原理:
由于基础矩阵F 定义为:
任给两幅图像中的匹配点 x xx 与 x′ x’x
令 x = ( u , v , 1 ) T , x ’ = ( u ’ , v ’ , 1 ) T x=(u,v,1)T ,x’=(u’,v’,1)^T x=(u,v,1)T,x’=(u’,v’,1)T
基础矩阵F是一个3×3的秩为2的矩阵,一般记基础矩阵F为:
有相应方程:
1.4八点算法的基本步骤
(1)求线性解 由系数矩阵A AA最小奇异值对应的奇异矢量f 求的F 。
(2)奇异性约束 是最小化Frobenius范数∥F−F’∥的F′ 代替F
1.5八点算法优缺点
八点算法的优点:
线性求解,容易实现,运行速度快 。
八点算法的缺点:
对噪声敏感。
2.代码
2.1八点法
# coding: utf-8
from PIL import Image
from numpy import *
from pylab import *
import numpy as np
from PCV.geometry import homography, camera, sfm
from PCV.localdescriptors import