如何调用cvFindHomography函数

如何调用cvFindHomography函数,第1张

std::vector<Point2f>pt1, pt2

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/


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11255342.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存