OpenCV 简介与安装方法
大家好啊,我是董董灿。
如果你在做计算机视觉相关的工作,肯定少不了使用 OpenCV 库。
在《计算机视觉专栏》的传统计算机视觉部分,我曾经使用 OpenCV 进行了很多图像的处理,比如边缘检测。
刚好最近在整理一份文稿,写了关于 OpenCV 的内容,所以就摘抄一部分放在这里,内容主要是关于 Opencv 的介绍以及安装方法。
有需要的朋友可以收藏一下。
什么是 OpenCV?
OpenCV 是一个被广泛使用的开源计算机视觉库,它提供了大量的传统图像 处理算法和基于深度学习的计算机视觉算法,以及用于图像和视频处理的方法。
OpenCV 的主要核心算法使用 C++ 编写,并且对外封装了 C++ 和 Python 语 言的 API,方便调用。
OpenCV 具有以下几个特点 :
代码开源
OpenCV 的代码是开源的,在遵守开源协议的条件下,我们可以在官方网址免费下载源代码学习并使用。
平台无关
OpenCV 的库可以在多种系统平台上运行,包括 Windows、Linux、MacOS、Android 和 iOS 等,这样可以确保用户在不同平台上使用和部 署,迁移成本非常低。
库很小
OpenCV 的库非常小,编译完成后总共不到 100MB,非常适合在一些小内存的场景下进行部署,比如一些图像检测终端。
性能好
由于 OpenCV 的核心算法是使用 C++ 编写的,并且可以很好地支持多线程和 SIMD 的运行模式,因此,其中涉及的算法运行效率很高,性能很好。
上述几点便是 OpenCV 库的几个重要特点,也正因为这几个特点,使得 OpenCV 无论在学术界还是工业界都得到了广泛的应用。
OpenCV 可以用来做什么?
OpenCV 提供了大量的接口,用于图像和视频的 读取、写入、显示和处理,下面再简单介绍 OpenCV 的主要应用场景:
图像、视频处理
OpenCV 可以很方便地读取、写入和处理图像以及视频,它提供了一些图像处理函数,如滤波、阈值处理、形态学处理和边缘检测等。
目标检测和跟踪
OpenCV 包含了一些目标检测和目标跟踪的成套函数, 这些函数可以用于检测和跟踪图像中的目标,例如图像中的人脸、视频中的行人和运动的汽车等。
机器学习
OpenCV 还可以进行一些机器学习的任务,它可以构建支持向量机(SVM)、随机森林(RandomForest)等算法,从而完成一些分类、回归任务。
OpenCV 环境搭建
安装和配置
OpenCV 库在 C++ 开发环境和 python 开发环境下的安装有所不同。
以下是安装两种开发环境中 OpenCV 的详细步骤。
安装 python 版本的 OpenCV
安装 Python
如果环境中还没有安装 Python,可以从 Python 官网下载并安装,建议安装 Python 3.0 以上版本。
如果你是 Linux 用户,一般会默认安装了 Python。
安装完 Python 后,系统会默认安装 pip 工具,python 开发环境下需要使用 pip 命令安装 OpenCV。
安装 OpenCV
Windows 系统的用户,按“win+R” 组 合 键 打 开 命 令 提 示 符(cmd) 或 PowerShell。
Linux 系统的用户直接在终端界面进行操作。
输入以下命令:
pip3 install opencv-python
验证安装
在命令行中输入 Python 来启动 Python 解释器,尝试导入 cv2 库并打印其版本来确认安装是否成功:
import cv2
print(cv2.__version__)
如果没有错误消息,并且能正确显示版本号,说明 OpenCV 已经成功安装。
在上述步骤中,我们使用了 OpenCV 的预编译包 opencv-python,这是最简单且最快速的安装方法。
对于更高级的用户或需要 OpenCV 的完整功能(包括视 频处理和 GPU 加速等)的用户,可能需要从源代码编译 OpenCV。
这需要下载 OpenCV 的源代码、配置编译选项以及编译和安装,过程更为复杂且需要考虑硬件兼容性。
安装 C++ 版本的 OpenCV
C++ 版本的 OpenCV 依赖一些开发库和工具,在 Linux 系统下通过以下命令安装这些依赖:
sudo apt updatesudo apt-get install libopencv-dev python3-opencv libopencv-contribdev
执行上述命令后,即可完成 C++ 版本的 OpenCV,安装完成后,就可以在 C++ 代码中以导入头文件的方式来使用了,如下:
#include <opencv2/opencv.hpp>
cv::Mat source;
source = cv::imread(file_name);
如果你想学习 AI ,欢迎来添加我的微信 (vx: ddcsggcs),会有很多好玩的AI技术分享,可以咨询、也可以围观朋友圈呀!欢迎查看我的专栏 >>1. 专栏:计算机视觉入门与调优 , 2. 专栏:Transformer 通关与大模型实战