OpenCV-Aruco模块调用 [python版]

OpenCV-Aruco模块调用 [python版]

  • Aruco用途:
  • 调用Aruco时错误
  • 解决方法
    • 再次尝试
    • 成功
  • 总结

Aruco用途:

Aruco
Marker是一种特殊的二维码,来源于美国中央俄克拉荷马大学(UCO),并且为他配套开发了适用openCV的库,现在已经广泛用于机器视觉中的姿态估计。

调用Aruco时错误

import cv2.aruco as aruco
aruco_dict = aruco.Dictionary_get(aruco.DICT_4X4_50)

提示:

ModuleNotFoundError: No module named 'cv2.aruco'

解决方法

以上情况说明没找到aruco模块,天真的我以为aruco是一个独立的包,直接pip install就行。随后我尝试进行安装aruco,pip install aruco但是提示需要VC++,为此还安装了Visual Studio 2019,但是再次安装还是没用。

再次尝试

继续浏览CSDN看别人是怎么做的,但是关于aruco的博客很少,都是拿起来直接用,有一个较为详细的是C++环境的aruco,需要c环境的可参考这个博客:

https://blog.csdn.net/qq_33835307/article/details/100095650?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158530163719725211956461%2522%252C%2522scm%2522%253A%252220140713.130056874..%2522%257D&request_id=158530163719725211956461&biz_id=0&utm_source=distribute.pc_search_result.none-task

回到正题,其实aruco是集成在OpenCV里的一个包,但是仅仅OpenCV-Python是没有这个,需要再安装opencv-contrib-python,

pip install opencv-contrib-python==3.4.8.29
#这里以为我OpenCV是3.4.829,所以 opencv-contrib 也使用同版本
#不同版本的OpenCV可以自行配不同版本 opencv-contrib

如果到这一步能解决你的问题,那就不用往下看啦。
拜拜~

就在我安装完opencv-contrib之后,悲惨的事情发生了
调用

import cv2.aruco as aruco
aruco_dict = aruco.Dictionary_get(aruco.DICT_4X4_50)

还是说找不到aruco包。

当时的内心是崩溃的,但是我并没有灰心,继续在网上找解决办法,好家伙,居然让我在这个旮沓里找到了。
https://pypi.org/project/opencv-contrib-python/

官方文档真香!

用pip下这个就行啦

pip install opencv-contrib-python-headless

但是!当我装完之后,我发现我基本的OpenCV函数像cv.imread不能用。真拉胯。。。。。

身残志坚的我经过一顿操作,把OpenCV卸载了;OpenCV-Contrib卸载了;opencv-contrib-python-headless卸载了。
重新安装
神奇的一幕发生了:

成功

当我装完OpenCV和OpenCV-Contrib,我的aruco居然可以用啦

总结

卸载OpenCV相关的所有包(包括但不限于:OpenCV;OpenCV-Contrib;opencv-contrib-python-headless),重新安装OpenCV和OpenCV-Contrib即可。

你可能感兴趣的:(OpenCV-Aruco模块调用 [python版])