先贴上
1. opencv-python、opencv-python-headless、opencv-contrib-python、opencv-contrib-python-headless包的区别
opencv-python
这个不用说,官方发布的标准版
opencv-python-headless
opencv-python-headless是一种无界面的版本,可用于运行在服务器上的计算机视觉应用程序。它的用法和opencv-python类似,但是在使用时不会显示图像。这对于运行在无图形界面的服务器上的应用程序很方便,因为它可以节省资源。
opencv-contrib-python
opencv contrib是opencv的扩展模块,包含了许多最新的以及可能还没有正式发布有待进一步完善的算法,可以理解为是opencv的扩展包,github网页点击查看。 这有点类似于matlab中的各个可选安装扩展包。 同时在opencv 3.0以后,sift、surf等特征算法也放到了contrib库中。 所以如果想使用sift算子,则必须要安装contrib库, 下面以python安装opencv contrib库为例,介绍安装流程。 注意contrib版本的opencv是普通opencv的超集,包含了所有opencv正常版的功能,可以理解为“opencv plus”。参考链接
注意:如果你以前安装过opencv,那么请先卸载干净,否则等contrib版的装好以后,可能出现无法识别的情况。因为识别的还是之前的版本。 利用pip命令即可卸载。
pip uninstall opencv-python
opencv-contrib-python-headless
与opencv-python-headless类似,是opencv-contrib-python的界面版本
以上四种包适分别谁呢?
python中安装opencv提供四种依赖包,
- 如果只需要主要模块 pip install opencv-python
- 如果需要更全的模块 pip install opencv-contrib-python
- 如果资源较少,不需要任何gui功能 pip install opencv-python-headless
- 如果资源较少,不需要任何gui功能,包含contrib模块 pip install opencv-contrib-python-headless
因此一般来说都会选择安装opencv-contrib-python不要同时安装opencv-python和opencv-contrib-python。
关于安装包的问题解决完以后,新版本的安装包在原来的代码上会连续报如下错误,对应新版本修改即可。
2.报错与解决
(1)attributeerror: module ‘cv2.aruco’ has no attribute ‘dictionary_get’
cv2.aruco.dictionary_get()
函数会加载cv2.aruco.dict_nxn_250包含250个标记的字典,其中每个标记都是n×n位二进制模式。- 在最新的版本中,这个函数的api改为了
cv2.aruco.getpredefineddictionary
(2)attributeerror: module ‘cv2.aruco’ has no attribute ‘detectorparameters_create’
cv2.aruco.detectorparameters_create
这个函数的作用是使用默认值初始化检测器参数
改为了cv2.aruco.detectorparameters
(3)attributeerror: module ‘cv2.aruco’ has no attribute ‘drawaxis’
cv2.aruco.drawaxis
这个函数会在二维码上加上坐标轴,改为了cv2.drawframeaxes
发表评论