for(int i = 0i <matches.size()i++ )
{
pt1 = Point2f(matches.second.pt.x, matches.second.pt.y)
pt2 = Point2f(matches.first.pt.x, matches.first.pt.y)
}
cv::Mat _pt1(1, n, CV_32FC2, &pt1 )
cv::Mat _pt2(1, n, CV_32FC2, &pt2 )
cv::Mat h = findHomography( _pt1), _pt2), CV_RANSAC, 3)
维基百科中有对单应性(homography)矩阵的详细解释在计算机视觉领域中,空间中同一平面的任意两幅图像通过单应性关联在一起(假定是针孔相机)。这有着很多实际应用,比如图像校正、图像对齐或两幅图像之间的相机运动计算(旋转和平移)等。一旦旋转和平移从所估计的单应性矩阵中提取出来,那么该信息将可被用来导航或是把3D物体模型插入到图像或视频中,使其可根据正确的透视来渲染,并且成为原始场景的一部分(请见增强现实)。
如果两幅图像之间的相机运动只有旋转而没有平移,那么这两幅图像通过单应性关联在一起(假定是针孔相机)
在Opencv中,有一个函数提供了单应性矩阵的计算:cvFindHomography()。Matlab中也有相应的工具箱。
给你一个链接,上面有详细解释http://www.bfcat.com/index.php/2012/06/homography-matrix/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)