没有名为“ cv2.aruco”的模块

时间:2018-10-10 09:18:19

标签: python opencv raspberry-pi3 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

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

1 个答案:

答案 0 :(得分:1)

编辑:我发现了为OpenCV安装其他模块的完美解决方案。先前的解决方案需要将文件从一个github目录手动复制到另一个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之前包含的一行,而且我不知道为什么在再次使用此命令后它会起作用。如果有人可以解释为什么会发生这种情况,我将不胜感激,这将使我对它为什么起作用有所了解。再一次,我希望这个答案可以帮助遇到相同问题的任何人。另外,很抱歉再次编辑这篇文章,我认为向人们展示更正确的方法来解决此问题将很有用。