我正在使用拼接器类从多个图像创建全景图。如何减少计算时间?

时间:2013-06-13 09:19:14

标签: opencv

使用opencv拼接器类拼接两个以上的图像时,是否有可能缩短计算时间?我注意到它想要缝合的图像越多,指数就越大(为什么?)。 opencv stitcher是否有可能尝试将每个图像与每个其他图像拼接在一起,因为我得到了一个定义的拼接图像顺序。所以这可能是减少计算时间的一种方法。我希望你理解我的意思,也许你可以给我一些建议来解决我的问题。

2 个答案:

答案 0 :(得分:2)

你有可用的gpu吗?

显着缩短处理时间的一种简单方法是尽可能使用GPU。 Opencv每天都让它变得更容易,如果你查看文档,你会看到有一个GP标志用于拼接器。

Here is the doc

你想玩那个元素:

  

- try_gpu(yes | no)尝试使用GPU。默认值为“no”。所有默认值均适用于CPU模式。

请注意,您需要使用GPU支持编译OpenCV才能使其正常工作。您可以在OPencv here中找到有关GPU支持的更多信息。

如果您不能使用GPU,正如@perfanoff所说,对图像进行缩减采样时,99%的时间是图像处理中的一个好主意。

答案 1 :(得分:2)

OpenCV Stitcher类将每个输入图像与所有其他图像匹配,从而成为指数运行时。确实可以修改OpenCV提供的示例代码,以仅匹配第一个与第二个图像,第二个与第三个图像匹配,依此类推。这将导致或多或少的线性运行时间。

为了减少朗姆酒时间,你可以进一步减少输入图像尺寸,特征类型(筛选和冲浪速度慢但比其他功能更强大),以及捆绑调整的阈值。