我正在尝试使用openCV缝合器类来组合航空影像。但是,我的问题是为旋转照相机设置了Stitcher类,现在我有了平移和旋转照相机。
有没有办法处理旋转和平移的相机(到目前为止,在Google上找不到任何建议或文件等)?特别是在Bundle调整区域中,因为这给了我nan的值(value)。
最佳答案
为了将图像缝合在一起,您需要具有单应性。为了获得单应性,您要么必须
1. rotate your camera stationary or
2. take pictures of a planar scene
由于您是从不同的位置进行空中拍摄,因此您将获得第2点。您必须高飞,以使物体的高度相对于飞行高度而言非常小,因此可以说您对平面场景具有很好的近似性。建议拍摄最低点的照片,即朝地球中心拍摄的照片。
如果使用缝合器类,则将航拍器设置为“PlaneWarper”进行空中射击。至少对于我来说,具有这些参数的Surf featuresfinder可以正常工作:
Stitcher stitcher = Stitcher::createDefault(false);
stitcher.setWarper(new PlaneWarper());
stitcher.setFeaturesFinder(new detail::SurfFeaturesFinder(1000,3,4,3,4));