Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python RANSAC算法在cv2.FindHomography中使用了哪些内联线来寻找单应矩阵?_Python_Opencv_Image Processing_Homography_Ransac - Fatal编程技术网

Python RANSAC算法在cv2.FindHomography中使用了哪些内联线来寻找单应矩阵?

Python RANSAC算法在cv2.FindHomography中使用了哪些内联线来寻找单应矩阵?,python,opencv,image-processing,homography,ransac,Python,Opencv,Image Processing,Homography,Ransac,1) OpenCV中的RANSAC算法如何在异常值上选择一个内联值?我假设它计算了匹配的关键点之间的总体最小二乘匹配 2) 我完全知道,除了H矩阵,cv2.FindHomography还输出掩模。从这个掩码中,匹配的关键点是1,被认为是内点,而0被认为是离群点。但是RANSAC算法选择哪个内联线来查找cv2.FindHomography输出的最终H单应?找到H矩阵是否考虑了所有这些因素 政府没有正确解释这两个问题 findHomography文档中的参数描述了内部变量与异常值: 对于1),RA

1) OpenCV中的RANSAC算法如何在异常值上选择一个内联值?我假设它计算了匹配的关键点之间的总体最小二乘匹配

2) 我完全知道,除了H矩阵,cv2.FindHomography还输出掩模。从这个掩码中,匹配的关键点是1,被认为是内点,而0被认为是离群点。但是RANSAC算法选择哪个内联线来查找cv2.FindHomography输出的最终H单应?找到H矩阵是否考虑了所有这些因素

政府没有正确解释这两个问题

findHomography文档中的参数描述了内部变量与异常值:

对于1),RANSAC计算观察到的投影,
dstPoint_i
,以及用候选单应性
H
计算的
srcPoint_i
的投影之间的误差(向量范数)。然后它只做一个简单的阈值检查。用户可以将ransacreprojectthreshold设置为您认为最适合您的数据的任何值。如果是在像素坐标系中,则只需设置像素距离中的最大误差,即可将某个点视为内联线。任何误差较大的都被视为异常值

对于2),RANSAC算法将简单地选择H矩阵,该矩阵根据您设置的阈值最大化内联数。因此,它返回给您的掩码是具有最大内联数的集合


这有意义吗?如果您感兴趣,它看起来不会在随机样本大小、迭代次数等方面为您提供大量选项。

我很确定输出参数“mask”会直接告诉您哪些点是内联点,哪些点是离群点。感谢您的回复@doggie_呼吸,我无法理解的是h的一部分。难道H不应该由内线本身建立吗?在给定的方程中,H矩阵的初始值是多少?@CharlesB,当然。对于RANSAC,您可以从src/dest点中选择一个随机子集,并直接从该样本计算H,如从。H用于计算集合中所有点的投影误差,并且使用上面的等式确定内边界。然后您只需迭代该示例/检查,并获取具有最大内联数的H。这有意义吗?这可能会有帮助。