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

标签 python opencv raspberry-pi3 aruco

我在 Raspberry Pi 3 上尝试使用 Aruco 时遇到了一些问题。
我在 Raspbian 的 headless 版本上使用 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 克隆 OpenCV 和 OpenCV_contrib
  2. 使用上面列出的教程中的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 ..

  3. 一旦此命令完成并且没有错误,再次运行 cmake -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..
  4. 这也应该没有任何错误地工作,并仔细检查是否所有模块都将安装,只需向上滚动输出结果,您应该看到“要安装的模块:”行,并且应该包含所有模块的列表在 opencv_contrib/modules 中。
  5. 一旦完成并且您确认它将安装您想要/需要的所有内容,您可以通过执行 make -j4 继续本教程。

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

关于python - 没有名为 'cv2.aruco' 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52736754/

相关文章:

python - 如何在 Azure ML 中使用 TensorFlow Hub

python - 为 pypy 安装了 numpy 但得到 "TypeError: readonly attribute ' __module_ _' "

python - 在 Python (Windows) 中使用池进行多处理

opencv - 用于 OpenCV 的高 FPS 相机

python - 简化从 cv2.findContours 获取坐标

python - 更新 numpy 数组的 3 维和 4 维元素

c++ - 在 OpenCV 中将 alpha channel 应用于图像的最快方法

c - C 中 Raspberry PI 串行通信中的奇偶校验设置问题

opencv - 在树莓派3(Raspbian Stretch)上安装opencv-python

python : cant open file 'hw.py' : [Errno 2] No such file or directory