机器视觉方向
早在深度学习之前,人们就开始探索图像的处理了,OpenCV 诞生于深度学习之前,是功能最全面的开源库。它提供了从最基础的图像读写、处理到复杂的特征匹配、目标跟踪、校准等一系列工具。其核心优势在于传统的计算机视觉算法,如图像处理、滤波、形态学操作等。
它向前承接传统以数组为单位的图像处理,向后承接深度学习,还提供很多预处理工具,是传统图像处理与深度学习之间重要的桥梁。
安装
opencv 中的open指的是opensource,即开源的意思。cv指computer vision,即计算机视觉。
opencv 是一个开源的计算机视觉库,包含大量的图像处理函数。
opencv-python需要根据环境选择正确的包
有4个不同的包(参见下面的选项 1、2、3 和 4),你只能选择其中的一个。不要在同一环境中安装多个不同的包。没有插件架构:所有包 都使用相同的名称空间(cv2
)。如果你在同一环境中安装了多个不同的包,请使用 pip uninstall
卸载所有包,然后只重新安装一个包。
a. 针对标准桌面环境的包(适用于 Windows、macOS、几乎所有 GNU/Linux 发行版)
- 选项 1 - 主模块包:
pip install opencv-python
- 选项 2 - 完整包(包含主模块和 contrib/extra 模块):
pip install opencv-contrib-python
(请参考 OpenCV 文档 中的 contrib/extra 模块列表)
b. 针对服务器(无窗口)环境的包(例如 Docker、云环境等),无 GUI 库依赖
这些包比前面两种包更小,因为它们不包含任何图形用户界面功能(未编译 Qt 或其他 GUI 组件)。这意味着这些包避免了对 X11 库的庞大依赖,从而例如可以生成更小的 Docker 镜像。如果你不使用 cv2.imshow
等函数,或者你使用其他包(例如 PyQt)来构建界面而非 OpenCV,则应始终使用这些包。
- 选项 3 - 无窗口主模块包:
pip install opencv-python-headless
- 选项 4 - 无窗口完整包(包含主模块和 contrib/extra 模块):
pip install opencv-contrib-python-headless
(请参考 OpenCV 文档 中的 contrib/extra 模块列表)
OpenCv作为开源软件,自然有大量的教程,我读过一些纸质书籍,也看过一些开源教程,总体来说,对于入门与进阶来说,需要的是细致的基础讲解、完整的处理流程,非常推荐官方的OpenCV-Python教程。