前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV 关于版本的一些说明

OpenCV 关于版本的一些说明

作者头像
为为为什么
发布2024-07-09 09:34:00
1580
发布2024-07-09 09:34:00
举报
文章被收录于专栏:又见苍岚

近期接触了 OpenCV 的多种版本,本文记录搜集到的信息。

目录

  1. OpenCV 对 Python 版本的支持
  2. OpenCV 主版本、Contrib 版本以及 Headless 版本的含义
  3. 关于 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

12

-D OPENCV_EXTRA_MODULES_PATH="../../opencv_contrib/modules" \-D OPENCV_ENABLE_NONFREE=ON \

非免费内容

其中最常用的就是 SIFT 和 SURF 特征的提取:

SIFT

SIFT 特征最开始是可以使用的 (3.4.10 之前),之后有很长一段时间 OpenCV 是不能直接用的(4.2.x 之前)

12

# 这个时期的用法cv2.xfeatures2D.SIFT_create ()

直到 2020年3月保护期结束后整合到主版本免费使用,用法为:

1

cv2.sift_create()

这里直接引述大佬的说法:

123456

sift = cv2.sift_create() # work in:# 3.4.11, 4.4.0, 4.5.x, 4.6.0 ==> Sift became free since March 2020sift = cv2.xfeatures2D.SIFT_create () # work in:# 3.2.x, 3.3.x, 3.4.0, 3.4.1, 3.4.2, 3.4.10, 4.3.0sift = cv2.xfeatures2D.SIFT_create () # ==> Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create' (the versions where the problem is present)# 3.4.3, 3.4.4, 3.4.5, 3.4.6, 3.4.7, 3.4.8, 3.4.9, 4.0.x, 4.1.x, 4.2.x

SURF

SURF 现在(2024.7)还没有解封,可以免费使用的只有早期 opencv 版本,之后想用都得用 NonFree 重新编译:

1234

SURF = cv2.xfeatures2D.SURF_create () # work in :# 3.2.x, 3.3.x, 3.4.0, 3.4.1, 3.4.2SURF = cv2.xfeatures2D.SURF_create () # ==> Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create' (the versions where the problem is present)# 3.4.3, 3.4.4, 3.4.5, 3.4.6, 3.4.7, 3.4.8, 3.4.9, 3.4.10, 3.4.11, 4.0.x, 4.1.x, 4.2.x, 4.3.0, 4.4.0, 4.5.x, 4.6.0

ORB

ORB 特征一直是可以随便用的,已经合在主版本中

1

orb = cv2.ORB_create()

报错解决

过程中遇到过一些错误

‘GLIBCXX_3.4.30’ not found for librosa in conda virtual environment

解决方案

1

conda install -c conda-forge libstdcxx-ng=12

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-7-8,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • OpenCV 对 Python 版本的支持
  • Main / Contrib / Headless
  • NonFree
    • 非免费内容
      • SIFT
      • SURF
      • ORB
    • 报错解决
      • ‘GLIBCXX_3.4.30’ not found for librosa in conda virtual environment
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档