当前位置: 首页 > news >正文

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即可。

相关文章:

  • 鼠标光标样式(cursor style)大全
  • HTML和CSS网页标准指南
  • 使用OpenCV-Python外接摄像头打不开问题
  • 访问站点提示:Service Unavailable,应用程序池的状况提示为:未指定错误
  • Python-OpenCV调用摄像头并保存视频
  • 通过Robots.txt禁止搜索引擎收录的方法
  • Python-OpenCV棋盘检测
  • 表格处理:换行还是不换行?
  • Ubuntu20.04安装指南及初步环境配置(超级详细)包含[ROS Noetic、Terminator、Pycahrm等常用工具安装]
  • 升级了
  • 《动手学深度学习》(PyTorch版) - 专栏说明
  • 流程分析师——不错的选择
  • 《动手学深度学习》(PyTorch版)避坑总结 - 1【d2lzh_pytorch模块导入方法详解及提示错误的解决方法】
  • 《动手学深度学习》(PyTorch版)避坑总结 - 2 【3.2.1代码未能画出散点图,并且也未报错】
  • Netbeans一个巨奇怪的问题
  • 【React系列】如何构建React应用程序
  • Java|序列化异常StreamCorruptedException的解决方法
  • Java读取Properties文件的六种方法
  • java中的hashCode
  • js如何打印object对象
  • React的组件模式
  • 当SetTimeout遇到了字符串
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 排序算法之--选择排序
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 我有几个粽子,和一个故事
  • ​ArcGIS Pro 如何批量删除字段
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #13 yum、编译安装与sed命令的使用
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (办公)springboot配置aop处理请求.
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)Java算法:二分查找
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • [100天算法】-x 的平方根(day 61)
  • [AutoSar]状态管理(五)Dcm与BswM、EcuM的复位实现
  • [C++]打开新世界的大门之C++入门
  • [CakePHP] 在Controller中使用Helper
  • [Delphi]一个功能完备的国密SM4类(TSM4)[20230329更新]
  • [HackMyVM]靶场Boxing
  • [HCTF 2018]WarmUp (代码审计)
  • [HTML]Web前端开发技术6(HTML5、CSS3、JavaScript )DIV与SPAN,盒模型,Overflow——喵喵画网页
  • [iOS]随机生成UUID通用唯一识别码
  • [MAT]使用MAT比較多个heap dump文件
  • [na]wireshark抓包排错-tcp.flags.reset
  • [noip2015 d1t2] 信息传递
  • [Oh My C++ Diary]类继承和类组合(内嵌类)初始化的不同
  • [POJ2104]K-th Number
  • [pytest] 运行方式、常用参数、前后置条件
  • [SDUT](3361) 数据结构实验之图论四:迷宫探索 ---DFS(图)
  • [Spring Boot1]配置、视图、Web开发
  • [Study]Vue
  • [uni-app ] createAnimation锚点旋转 及 二次失效问题处理