需要帮助从OpenCV编译该示例

时间:2012-02-02 16:58:36

标签: opencv compilation

我需要帮助来编译那段code

我的项目需要一些东西,但我无法编译它。

我从源头编译整个'OpenCV'库,按照说明there

但是存在很大的问题:

1 - 在包含文件中,在目录"opencv2/stitching"中,没有名为“detail”的子目录(源文件中有一个,但/usr/local/include/opencv2/stitching中没有编译版本)。< / p>

2 - 在当前版本中,在示例中,在stitching_detailed.cpp中,对此没有任何修改!

另外,编译时我没有任何错误......只有未使用变量的警告...

更多信息:

所以,我正在使用它来编译:

  

g ++ stitching_detail.cpp -o stitcher pkg-config --libs opencv -lopencv_stitching -lopencv_gpu

但opencv_stitching中有很多错误,如:

  

未定义引用`cv :: gpu :: buildWarpCylindricalMaps(cv :: Size_,cv :: Rect_,cv :: Mat const&amp;,cv :: Mat const&amp;,float,cv :: gpu :: GpuMat&amp ;,, cv :: gpu :: GpuMat&amp;,cv :: gpu :: Stream&amp;)'

有没有办法删除opencv_gpu的依赖项?因为我现在唯一的问题是由此引起的!

重要:

在配置中,指定我想在没有CUDA的情况下编译OpenCV,我显然有以下第三方信息:

  

- 其他第三方图书馆:

     

- 使用IPP:否

     

- 使用TBB:否

     

- 使用Cuda:NO

     

- 使用特征:否

1 个答案:

答案 0 :(得分:2)

您收到此错误是因为您编译了没有CUDA支持的库,并且有些函数需要它。 编译器试图链接cv :: gpu函数,如果在CMAKE解决方案生成期间不使用CUDA标志,则不会在编译库中添加它们。 要避免此行为,您有两种选择:

  1. 使用CUDA标志重新编译OpenCV。 (您需要安装所有CUDA 首先是依赖关系)
  2. 从示例代码中删除所有cv :: gpu调用。
  3. 如果您在Windows环境中,可以使用cuda支持轻松下载预编译的库并测试代码。如果您没有CUDA支持,可能代码将在cv :: gpu函数期间崩溃。

    第二个选项很容易做到。代码已声明使用命名空间cv ,因此您只需查找所有gpu ::(function_name)调用并将其删除即可。请注意不要使用--try_gpu参数,因为我没有读取所有代码,这可能会在执行期间调用一些未定义的行为。