繁体   English   中英

导入 opencv 与导入 cv2

[英]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接口, cvcv2 最新的一个是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM