百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

OpenCV:强大的开源计算机视觉库(开源计算机视觉库的英文缩写)

itomcoil 2025-01-29 16:13 12 浏览

计算机视觉是人工智能的一个交叉领域,意图赋予计算机和其它具有计算能力的电子设备高层次的对图像和视频的理解能力。其能力范围是获取、处理并分析数字图像。

上世纪末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上如何校验ISO镜像文件

Linux下无法挂载exfat格式的分区

Linux下使用redshift来启用护眼模式

在Linux上如何方便地对鼠标右键菜单进行截屏

Linux中那些我们赖以为生的Bash别名

Linux下如何拼接PDF文件

喜欢使用Linux办公、学习、hack的朋友们可以点击关注小编,小编将竭力提供更多内容给大家交流~

相关推荐

Excel新函数TEXTSPLIT太强大了,轻松搞定数据拆分!

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!最近我把WPS软件升级到了版本号:12.1.0.15990的最新版本,最版本已经支持文本拆分函数TEXTSPLIT了,并...

Excel超强数据拆分函数TEXTSPLIT,从入门到精通!

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!今天跟大家分享的是Excel超强数据拆分函数TEXTSPLIT,带你从入门到精通!TEXTSPLIT函数真是太强大了,轻松...

看完就会用的C++17特性总结(c++11常用新特性)

作者:taoklin,腾讯WXG后台开发一、简单特性1.namespace嵌套C++17使我们可以更加简洁使用命名空间:2.std::variant升级版的C语言Union在C++17之前,通...

plsql字符串分割浅谈(plsql字符集设置)

工作之中遇到的小问题,在此抛出问题,并给出解决方法。一方面是为了给自己留下深刻印象,另一方面给遇到相似问题的同学一个解决思路。如若其中有写的不好或者不对的地方也请不加不吝赐教,集思广益,共同进步。遇到...

javascript如何分割字符串(javascript切割字符串)

javascript如何分割字符串在JavaScript中,您可以使用字符串的`split()`方法来将一个字符串分割成一个数组。`split()`方法接收一个参数,这个参数指定了分割字符串的方式。如...

TextSplit函数的使用方法(入门+进阶+高级共八种用法10个公式)

在Excel和WPS新增的几十个函数中,如果按实用性+功能性排名,textsplit排第二,无函数敢排第一。因为它不仅使用简单,而且解决了以前用超复杂公式才能搞定的难题。今天小编用10个公式,让你彻底...

Python字符串split()方法使用技巧

在Python中,字符串操作可谓是基础且关键的技能,而今天咱们要重点攻克的“堡垒”——split()方法,它能将看似浑然一体的字符串,按照我们的需求进行拆分,极大地便利了数据处理与文本解析工作。基本语...

go语言中字符串常用的系统函数(golang 字符串)

最近由于工作比较忙,视频有段时间没有更新了,在这里跟大家说声抱歉了,我尽快抽些时间整理下视频今天就发一篇关于go语言的基础知识吧!我这我工作中用到的一些常用函数,汇总出来分享给大家,希望对...

无规律文本拆分,这些函数你得会(没有分隔符没规律数据拆分)

今天文章来源于表格学员训练营群内答疑,混合文本拆分。其实拆分不难,只要规则明确就好办。就怕规则不清晰,或者规则太多。那真是,Oh,mygod.如上图所示进行拆分,文字表达实在是有点难,所以小熊变身灵...

Python之文本解析:字符串格式化的逆操作?

引言前面的文章中,提到了关于Python中字符串中的相关操作,更多地涉及到了字符串的格式化,有些地方也称为字符串插值操作,本质上,就是把多个字符串拼接在一起,以固定的格式呈现。关于字符串的操作,其实还...

忘记【分列】吧,TEXTSPLIT拆分文本好用100倍

函数TEXTSPLIT的作用是:按分隔符将字符串拆分为行或列。仅ExcelM365版本可用。基本应用将A2单元格内容按逗号拆分。=TEXTSPLIT(A2,",")第二参数设置为逗号...

Excel365版本新函数TEXTSPLIT,专攻文本拆分

Excel中字符串的处理,拆分和合并是比较常见的需求。合并,当前最好用的函数非TEXTJOIN不可。拆分,Office365于2022年3月更新了一个专业函数:TEXTSPLIT语法参数:【...

站长在线Python精讲使用正则表达式的split()方法分割字符串详解

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中使用正则表达式的split()方法分割字符串详解》。使用正则表达式分割字符串在Python中使用正则表达式的split(...

Java中字符串分割的方法(java字符串切割方法)

技术背景在Java编程中,经常需要对字符串进行分割操作,例如将一个包含多个信息的字符串按照特定的分隔符拆分成多个子字符串。常见的应用场景包括解析CSV文件、处理网络请求参数等。实现步骤1.使用Str...

因为一个函数strtok踩坑,我被老工程师无情嘲笑了

在用C/C++实现字符串切割中,strtok函数经常用到,其主要作用是按照给定的字符集分隔字符串,并返回各子字符串。但是实际上,可不止有strtok(),还有strtok、strtok_s、strto...