计算机视觉是人工智能的一个交叉领域,意图赋予计算机和其它具有计算能力的电子设备高层次的对图像和视频的理解能力。其能力范围是获取、处理并分析数字图像。
上世纪末Intel发起了一个计算机视觉项目,也是OpenCV的前身。也许上世纪一词会让你以为它很古老,但其实OpenCV一致活跃在计算机视觉的前沿,并致力于成为计算机视觉领域的标准API。
作为人工智能的一个子领域,计算机视觉依赖于机器学习甚至深度学习来构建具体的应用。当然其它技术,诸如计算机图形学、图像处理、信号处理、传感器技术以及数学甚至物理在计算机视觉技术中也应用广泛。
如何使用
最初的OpenCV使用C语言实现,后来C++逐步加入并成为了OpenCV开发的核心语言。因此你可以通过C++来使用OpenCV库。另外OpenCV也提供了类似的Python、JavaScript等接口,可以让您避免C++难度过大的问题。
下面小编将为您介绍如何在自己的平台上安装OpenCV以及推荐一些不错的学习资源~
安装OpenCV
作为一款成熟的跨平台开源软件,OpenCV的安装也是非常简单的。下面将介绍在不同平台上安装OpenCV的方法。
Ubuntu
~$ sudo apt install libopencv-dev # 供C++用户使用
如果你需要安装python接口:
~$ sudo apt install python-opencv
ArchLinux
~$ sudo pacman -S --noconfirm opencv
Fedora
~$ yum install numpy opencv*
另外你也可以通过Docker容器来使用OpenCV。
OpenCV3
~$ docker pull spmallick/opencv-docker:opencv-3.4.1
? docker run --device=/dev/video0:/dev/video0 -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -p 5000:5000 -p 8888:8888 -it spmallick/opencv-docker:opencv-3.4.1 /bin/bash
OpenCV4
~$ docker pull spmallick/opencv-docker:opencv-4
? docker run --device=/dev/video0:/dev/video0 -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -p 5000:5000 -p 8888:8888 -it spmallick/opencv-docker:opencv-4 /bin/bash
注意运行此处运行docker镜像用到的参数的目的:
- --device=/dev/video0:/dev/video0 允许容器使用webcam
- -v /tmp/.X11-unix:/tmp/.X11-unix 将X11数据转发出来以便能够通过容器使用cv::imshow等函数
- -e 用来传递环境变量
- -it 启动交互式会话
- -p 设置端口转发,将容器与主机的端口进行映射
- 要使用对应Python环境,进入容器后需要执行source activate OpenCV-master-py2 或者source activate OpenCV-master-py3
Anaconda或者pip
~$ conda install opencv
~$ pip install opencv-python # 安装核心部分
~$ pip install opencv-contrib-python
学习资源
- 堪称圣经的《Learning OpenCV》系列,最新已经到了《Learning OpenCV4》
- Learn OpenCV网站及其GitHub仓库
- OpenCV中文文档
- OpenCV易百教程
往期文章
喜欢使用Linux办公、学习、hack的朋友们可以点击关注小编,小编将竭力提供更多内容给大家交流~