本文最后更新于:2024年7月8日 下午
近期接触了 OpenCV 的多种版本,本文记录搜集到的信息。
目录
- OpenCV 对 Python 版本的支持
- OpenCV 主版本、Contrib 版本以及 Headless 版本的含义
- 关于 OpenCV NonFree 的相关信息
OpenCV 对 Python 版本的支持
从 pypi 的 opencv 清华镜像源可以看到 OpenCV 与 Python 版本的支持关系,此处做整理总结:
OpenCV 版本 | Python 版本 | 备注 |
---|---|---|
3.4.0.X - 3.4.1.X | 2.7 - 3.6 | |
3.4.2.X - 3.4.7.28 | 2.7 - 3.7 | |
3.4.8.29 - 3.4.9.31 | 2.7 - 3.8 | |
3.4.9.33 - 3.4.11.43 | 3.5 - 3.8 | |
3.4.11.45 - 3.4.15.X | 3.6 - 3.9 | |
3.4.16.57 - 3.4.16.59 | 3.6 - 3.10 | |
3.4.17.63 - 3.4.18.65 | 3.6 - 3.7 | |
4.0.0.21 - 4.1.1.26 | 2.7 - 3.7 | |
4.1.2.30 - 4.2.0.34 | 2.7 - 3.8 | |
4.3.0.36 - 4.4.0.42 | 3.5 - 3.8 | |
4.4.0.44 - 4.5.3.56 | 3.6 - 3.9 | |
4.5.4.58 - 4.5.4.60 | 3.6 - 3.10 |
Main / Contrib / Headless
区别列表:
主版本 | Contrib 版本 | Headless 版本 | Contrib Headless 版本 | |
---|---|---|---|---|
安装命令 | pip install opencv-python |
pip install opencv-contrib-python |
pip install opencv-python-headless |
pip install opencv-contrib-python-headless |
版本含义 | 官方版本:带有官方核心开源库 | 完整版本(Full package):官方版本 + 第三方附加开源库 | 官方版本 - GUI相关内容(server 版本,不带 Qt 相关内容) | 完整版本 - GUI相关内容(server 版本,不带 Qt 相关内容) |
注意:不要在同一环境中安装多个不同的软件包,按需安装某一个 opencv python 包就可以了
NonFree
OpenCV 是一个开源图像处理库,其中部分库由于种种原因不再免费开源,OpenCV 便将这部分内容放到 NonFree 的部分,需要付费使用或者手动开启重新编译后才能使用。
核心就是在 Cmake 编译时开启 contrib 库,同时开启 NONFREE
1 |
|
非免费内容
其中最常用的就是 SIFT 和 SURF 特征的提取:
SIFT
SIFT 特征最开始是可以使用的 (3.4.10 之前),之后有很长一段时间 OpenCV 是不能直接用的(4.2.x 之前)
1 |
|
直到 2020年3月保护期结束后整合到主版本免费使用,用法为:
1 |
|
这里直接引述大佬的说法:
1 |
|
SURF
SURF 现在(2024.7)还没有解封,可以免费使用的只有早期 opencv 版本,之后想用都得用 NonFree 重新编译:
1 |
|
ORB
ORB 特征一直是可以随便用的,已经合在主版本中
1 |
|
报错解决
过程中遇到过一些错误
‘GLIBCXX_3.4.30’ not found for librosa in conda virtual environment
解决方案
1 |
|
参考资料
- https://pypi.tuna.tsinghua.edu.cn/simple/opencv-python/
- https://stackoverflow.com/questions/64902852/the-difference-between-opencv-python-and-opencv-contrib-python
- https://github.com/Mikubill/sd-webui-controlnet/issues/1881
- https://devpress.csdn.net/python/63045a087e6682346619a5ce.html
- https://blog.csdn.net/kkae8643150/article/details/123072222
- https://www.cnblogs.com/Pyrokine/p/13663227.html
- https://stackoverflow.com/questions/66110067/how-to-set-opencv-enable-nonfree-option
- https://stackoverflow.com/questions/64525121/sift-surf-module-cv2-cv2-has-no-attribute-xfeatures2d-set-opencv-enabl
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付
OpenCV 关于版本的一些说明
https://www.zywvvd.com/notes/study/image-processing/opencv/opencv-version-about-nonfree/opencv-version-about-nonfree/