Mr.*_*ain 5 opencv homography ransac
我正在完成我的兴趣点检测器评估工具.在最后的步骤中,我发现了一个令人困惑的错误.
Mat findHomography(InputArray srcPoints, InputArray dstPoints, int method=0, double ransacReprojThreshold=3, OutputArray mask=noArray() )
Run Code Online (Sandbox Code Playgroud)
的srcPoints和dstPoints是vector<Points2f>存储该匹配的关键点的对应点.到目前为止没什么特别的 - 就像在教程中一样.
但是当我使用RANSAC并且vector<Points2f>在[0,...,4]范围内时,我得到的断言错误比计数器应该大于或等于4.
问题1:算法是否需要至少四个点来描述属于当前模型的内容并创建共识?
请注意,我已经看过这个问题了.但是对于RANSAC的行为没有令人满意的答案.或者我应该接受这种方法至少需要四点才能找到单应性?
谢谢你的帮助.
不能用少于4对点来计算单应性.那是因为只有3分,存在视角模糊.想象一个三角形
a
b c
Run Code Online (Sandbox Code Playgroud)
在图像2中,点已被转换为如此
a
b c
Run Code Online (Sandbox Code Playgroud)
b和c之间的距离减少了一半.不幸的是,你不知道是不是因为c点离你或离你越来越近了.在第4点,差异变得清晰.
a d
b c
Run Code Online (Sandbox Code Playgroud)
这是图1中的正方形
d
a
b c
Run Code Online (Sandbox Code Playgroud)
这里d和c向你旋转
a
d
b c
Run Code Online (Sandbox Code Playgroud)
在这里,他们转离了你.
我没有在openCV文档中看到这个要求,但是如果你发现单应性计算的任何资源,你就不必在找到这个要求之前阅读很多,并且更严格地证明4点就足够了.
| 归档时间: |
|
| 查看次数: |
4816 次 |
| 最近记录: |