获取RANSAC在findHomography中使用的5个点(适用于Android的OpenCV)

获取RANSAC在findHomography中使用的5个点(适用于Android的OpenCV),第1张

概述在OpenCVforAndroid中,函数org.opencv.Calib3d.findHomography(..)返回齐次变换矩阵.例如,这只返回单应性:Mathomography=Calib3d.findHomography(points1,points2,Calib3d.RANSAC,0.5);有没有办法从AndroidOpenCVAPI返回RANSAC实际使用的点数?解决方法:更新我不确定

在OpenCV for Android中,函数org.opencv.Calib3d.findHomography(..)返回齐次变换矩阵.例如,这只返回单应性:

Mat homography = Calib3d.findHomography(points1, points2, Calib3d.RANSAC, 0.5);

有没有办法从AndroID OpenCV API返回RANSAC实际使用的点数?

解决方法:

更新

我不确定它是OpenCV的新增功能还是我错过了它,但是findHomography()功能实际上可以为你提供内部功能(OpenCV 2.4.2).默认情况下为空的最后一个参数mask将在RANSAC的内部索引处填充一个(或255).

Mat findHomography(inputArray srcPoints, inputArray dstPoints,      int method=0, double ransacReprojThreshold=3, OutputArray mask=noArray() )//                                                               ^//                                                               |

老答案

RANSAC用于估计单应性的点(在技术文档中称为inlIEr)不能直接提取.它们在内部计算,但随后删除列表.

提取它们的方法是修改find​​Homography函数(以及相应的RANSAC函数).但这很难看.

另一种更清洁的方法是测试输入中的点对与单应性相匹配:

使用projectPoints(points1,homography,points1_dest)(我希望这是函数名称)将单应性应用于points1.

正确的函数名和输入参数顺序是:
voID perspectivetransform(inputArray src,OutputArray dst,inputArray m),在本例中为cv :: perspectivetransform(points1,points1_dest,homography)
OpenCV Perspective Transform

使用cv :: distance(points1_dest,points2)

正确的函数名和输入参数顺序是:
double norm(inputArray src1,int normType = norM_L2,inputArray mask = noArray())

可能的实施:

std::array<cv::Point2f, 1> pt1;pt1[0] = points1_dest;std::array<cv::Point2f, 1> pt2;pt2[0] = points2;distance = cv::norm(pt1,  pt2));

OpenCV norm function

也可以使用毕达哥拉斯定理计算两点之间的距离

看看它们中哪一个足够接近它们的对2.距离应小于或等于min_distance ^ 2.在你的情况下,0.5 * 0.5 = 0.25.

总结

以上是内存溢出为你收集整理的获取RANSAC在findHomography中使用的5个点(适用于Android的OpenCV)全部内容,希望文章能够帮你解决获取RANSAC在findHomography中使用的5个点(适用于Android的OpenCV)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: http://outofmemory.cn/web/1114250.html

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

发表评论

登录后才能评论

评论列表(0条)

保存