特征检测与匹配(4):寻找已知物体
一,寻找透视变换:findHomography()函数;
二,进行透视矩阵变换:perspectiveTransform()函数;
三,示例程序:寻找已知物体;
一,寻找透视变换:findHomography()函数
此函数的作用是找到并返回源图像和目标图像之间的透视变换H:
·第一个参数,InputArray类型的srcPoints,源平面上的对应点,可以是CV_32FC2的矩阵类型或者vector<Point2f>。
·第二个参数,InputArray类型的 dstPoints,目标平面上的对应点,可以是cV_32FC2的矩阵类型或者vector<Point2f>。
·第三个参数,int类型的 method,用于计算单应矩阵的方法。可选标识符为如表11.2所示。
第四个参数,double类型的ransacReprojThreshold,有默认值3,处理点对为内围层时,允许重投影误差的最大值。这就是说,当|| dstPoints-convertPointsHomogeneous (H*srcPoints,)|>ransacReprojThreshold 时,这里的点i被看做内围层。若srcPoints和 dstPoints是以像素为单位的,那么此参数的取值范围一般在1到10之间。
第五个参数,OutputArray类型的mask,有默认值 noArray(),是一个可选的参数,通过上面讲到的鲁棒性方法( CV_RANSAC或者CV_LMEDS )设置输出掩码。需要注意的是,输入掩码值会被忽略掉。