[英]import opencv vs import cv2
我最近通过 pip 在 Mac OS 上安装了 opencv-python-3.4.0.12。 当我运行 Python 解释器时, import cv2
工作正常,而import opencv
会引发 ModuleNotFoundError。 但是,当我运行 Python3 解释器时, import opencv
工作正常,而import cv2
会引发 ModuleNotFoundError。
这种差异背后的原因是什么?在相关说明中,我应该使用import opencv
还是import cv2
? cv2
是指 OpenCV 版本 2 吗?
你应该导入cv2
。 OpenCV发布了两种类型的Python接口, cv
和cv2
。 最新的一个是cv2
。 这将让您了解是否已正确安装opencv
。
cv2
的命名是历史的偶然。
历史课:OpenCV 开始于 C API。 后面的第一个 Python 绑定使用了cv
导入。 在 OpenCV 2.0 版中,引入了 C++ API。 那也是当 C++ 包括说#include <opencv2/...>
出现的时候。 C++ API 使用cv::
命名空间。 Python 导入现在称为cv2
,并在cv2.cv
命名空间中携带旧的 C API。
2
基本上只是意味着“新的 API”。
Since then, versions 3.x and 4.x, "the C++ API" is still the primary API, and currently the only API, because the C API was removed. 但是,标头的位置并没有随着新的主要版本而改变,并且 Python 模块导入的名称也没有改变。
opencv-python
包仅提供cv2
导入。 这是所有 v3.x 和 4.x 版本的导入,即当前版本,并且可能会导入 v5.x。 推荐的导入和用法是:
import cv2 as cv # to mirror the `cv::` namespace
# use cv.imread() and so on
没有opencv
导入。 如果那“有效”,那就错了,有些东西在欺骗你。 检查已安装的软件包并删除任何阴暗的东西。 Python 中为您提供 OpenCV 的唯一值得信赖的软件包是官方软件包,即PyPI 上的opencv-python
及其兄弟软件包(带有附加贡献模块的软件包,ZEFE90A8E604A7C840E88D03AD7 模块除外)。
没有cv
导入。 将来,这些包可能会更改为删除旧名称并直接提供cv
导入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.