没有名为 'cv2.aruco' 的模块

No module named 'cv2.aruco'

我在 Raspberry Pi 3.
上尝试使用 Aruco 时遇到了一些问题 我在 Raspbian 的无头版本上使用 Python 3.5,我按照本教程使用 opencv_contrib 安装 OpenCV - 据我所知包含所有软件包:

https://www.pyimagesearch.com/2015/07/27/installing-opencv-3-0-for-both-python-2-7-and-python-3-on-your-raspberry-pi-2/

OpenCV 安装没有任何问题,我可以在 Python 中导入它并且工作正常。我需要将 Aruco 用于项目,当我尝试导入它时出现此错误:

Traceback (most recent call last):
  File "<stdin>", line1, in <module>
ImportError: No module named 'cv2.aruco': 'cv2' is not a package

我之前遇到过同样的问题,所以我刷了SD卡开始全新安装,但是又出现了。从我在这里发现的上一个问题中,我尝试使用

安装 opencv_contrib
pip install opencv-contrib-python

但是我得到了错误:

Could not find a version that satisfies the requirement opencv-contrib-python (from versions: )  
No matching distribution found for opencv-contrib-python

有没有人遇到同样的问题,或者您有什么建议或如何解决?任何帮助将不胜感激。

编辑:我找到了为 OpenCV 安装附加模块的问题的完美解决方案。以前的解决方案需要将文件从一个 github 目录手动复制到另一个目录,并且必须将复制的文件手动添加到 txt 文件中。该解决方案允许您安装所有模块而无需任何复制等。我将我最初的想法留在答案中,唯一改变的是要遵循的步骤。如果我在编辑方面做错了什么,请纠正我,因为我以前从来没有因为找到更好的解决方案而编辑自己的答案(如您所见,我在这里很新)。

我设法解决了我的问题,我想我会把我的解决方案作为一个新的答案来分享,这样如果以后有人遇到同样的问题,人们会更容易看到。
当只需要从 opencv_contrib 安装几个模块时,该解决方案工作正常,因为它需要一些复制。

整个安装过程需要按照本教程进行https://www.pyimagesearch.com/2015/07/27/installing-opencv-3-0-for-both-python-2-7-and-python-3-on-your-raspberry-pi-2/

新流程,找到更好的解决方案后:

  1. 从 GitHub
  2. 克隆 OpenCV 和 OpenCV_contrib
  3. 使用上面列出的教程中的 cmake 命令为 OpenCV 创建安装文件。我的命令如下所示:

    cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D BUILD_EXAMPLES=ON ..

  4. 一旦此命令完成并且您没有收到错误,运行 cmake -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules .. 再次
  5. 这应该也没有任何错误,并仔细检查是否所有模块都将安装,只需向上滚动输出结果,您应该看到行 "Modules to install: " 并且应该有所有模块的列表包含在 opencv_contrib/modules.
  6. 一旦完成并且您确认它将安装所有您 want/need,您可以通过 make -j4.
  7. 继续本教程

我知道它只是复制了之前包含在 cmake 中的一行,我不知道为什么再次使用此命令后它会起作用。如果有人能解释为什么会这样,我将不胜感激,这会让我对它为什么起作用有所了解。再次,我希望这个答案能帮助遇到同样问题的任何人。另外,很抱歉将此 post 编辑了两次,我认为向人们展示解决此问题的更正确方法会很有用。

我按照 Irek 的回答做了一些小的调整,我跳过了第 3 步并且它工作正常,实际上尝试执行第 3 步并且我 运行 遇到了问题。此外,在第 2 步之后,我 运行 make && make install 而不是第 5 步。我 运行 在 Ubuntu 20.04 图像上构建的 dockerfile 中 运行 宁此。