【问题标题】:OpenCV Contrib ModulesOpenCV 贡献模块
【发布时间】:2016-02-12 01:06:54
【问题描述】:

我已经看到这个问题在几个地方弹出,但我唯一一次看到它回答是通过使用 cpp 的 Visual Studio 或在 Linux 操作系统上。

我正在尝试将贡献模块添加到 OpenCV 并与 Spyder 中的 Python-Anaconda 一起使用。具体来说,我希望添加 bgsegm 模块。我尝试了几种不同的方法,但都没有成功。

我已经下载了 OpenCV 和 Opencv_contrib 的当前主分支。我将它们放在一个名为 opencv-3.0 的新文件夹中。在 opencv 中,我创建了一个名为 build 的新文件夹。我在该文件夹中运行命令提示符并使用命令:

cmake -D OPENCV_EXTRA_MODULES_PATH= ..\..\opencv_contrib\modules

返回

the source directory "C:/opencv-3.0/opencv_contrib/modules" does not appear to contain CMakeLists.txt

我在命令行上缺少什么?使-j5?由于错误,我什至没有运行它的选项。

或者,当从 cmake GUI 运行时,我不确定将什么用作我的生成器。我没有 Visual Studio,这似乎是每个人都在使用的。即使我有 VS,我也希望能够在 python 和 Sypder 中使用它。有什么建议吗?

【问题讨论】:

  • OPENCV_EXTRA_MODULES_PATH 和 ..\..\opencv_contrib\modules 之间的空格表示您为变量分配空值并尝试使用给定路径作为源。正确调用:cmake -D OPENCV_EXTRA_MODULES_PATH=..\..\opencv_contrib\modules ..
  • 感谢您的回复。我添加了空间,因为当我没有它时我收到了其他错误。我现在看到了那里的错误。当我用 .. 最后运行更正的代码时,它返回“--building for: NMake Makefiles”,然后我收到错误“cmake must be run from a shell that can use the compiler cl from the command line.”并且我的编译器标识未知。完整的输出是多行,但这是 jist。我觉得我错过了 cmake 所必需的主要部分......就像一个编译器。
  • 错误消息cmake must be run ... 看起来不言自明。你也可以google一下。如果您无法解决您的问题,请在问题帖子本身中而不是在 cmets 中表述:在 Stack Overflow 上 cmets 仅用于澄清帖子(问题、答案)或请求澄清。
  • 我很抱歉,会解决这个问题。感谢您的澄清。

标签: python opencv cmake cmake-gui


【解决方案1】:

即使您想使用 Python,您也必须自己编译 OpenCV Contrib 模块,然后才能将其与 Python 一起使用。

CMake 为您的编译器生成 Makefile(如果没有,请获取一个),然后您可以编译 Makefile/Visual Studio 解决方案。

您从CMake 收到的错误是因为您没有将 OpenCV 源目录指定为最后一个参数。完全按照here 的说明进行操作。

比如:

cd "C:/opencv-3.0/build"
cmake -DOPENCV_EXTRA_MODULES_PATH="C:/opencv-3.0/opencv_contrib/modules" "C:/opencv-3.0"

【讨论】:

  • 我明白了,所以它应该类似于 cmake 为编译器生成文件,然后编译器构建 cv2.py 然后我可以将其复制到我的 anaconda 站点包中并实际使用该模块。那个听起来是对的吗?我的印象是 cmake 进行了编译,但我猜不是。您对在这种情况下有用的编译器有什么建议吗?如果可能,我想避免使用 Visual Studio。此外,当我确实指定源目录时,我收到我的编译器标识未知的错误(如果我没有编译器标识是有道理的)。
  • 你必须自己研究什么编译器最适合你。但是,如果您是新手,只想开始新事物;我建议从流行的 Linux 发行版开始,无论是否来自虚拟机。
猜你喜欢
  • 2016-12-10
  • 2015-10-13
  • 2016-03-15
  • 1970-01-01
  • 2011-12-24
  • 1970-01-01
  • 2010-12-10
  • 2016-10-29
  • 1970-01-01
相关资源
最近更新 更多