使用OpenCV(version:3.4.1)的追踪算法时,代码运行出现module ‘cv2.cv2’ has no attribute ‘TrackerCSRT_create’错误提示信息,显示cv2模块中没有TrackerCSRT_create,查阅一些资料发现应该是安装OpenCV方式的问题导致追踪算法不可用。
常用的OpenCV安装方式是pip安装或者sudo apt install opencv-python
,这两种方式安装的OpenCV似乎并不完整,因为其中没有安装opencv_contrib模块,该模块存放OpenCV中一些不稳定的算法、正在开发的模块以及一些申请专利的算法,其中包含了Surf、Sift算法等,在OpenCV2版本中这些模块被集成进去,OpenCV3则需要单独安装,这也是导致追踪算法等一些其他模块不可用的原因。
可以通过两种方式来安装:1. pip安装opencv_contrib模块 2. 源码编译安装OpenCV和opencv_contrib
1. pip安装OpenCV和open_contrib
1 | pip install opencv-python |
python中执行以下命令
1 | import cv2 |
如果没有出现错误信息表示模块可以正常使用了。
2.源码编译安装
系统环境如下:
1 | OS: Linux Mint 18.2 64bit |
从Github上下载OpenCV源码
1 | git clone https://github.com/opencv/opencv.git |
或者在Github上的tag标签中点击3.4.1版本号,之后点击Doanload zip下载压缩包。
单独下载opencv_contrib模块
1 | wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.4.1.zip |
安装OpenCV安装过程中所需要的一些依赖包
1 | sudo apt update |
编译安装OpenCV
1 | cd opencv |
上述指令中OPENCV_EXTRA_MODULES_PATH需要填写自己下载解压的opencv_contrib目录路径,PYTHON_EXECUTABLE需要更换成自己的python路径。构建过程可能会有一些慢,其中还会从网络上下载一些文件。
使用cmake指令编译OpenCV,make -j8
表示使用8个CPU核心编译OpenCV,具体情况需要根据自己的CPU来分配适合的核心数目。
1 | make -j8 |
打开python shell,输入如下指令
1 | import cv2 |
若出现如下类似信息

表明OpenCV和opencv_contrib均安装完成。
到此,OpenCV安装完毕。