OpenCV4是一个开源计算机视觉和机器学习软件库。OpenCV的构建旨在为计算机视觉应用程序提供通用的基础结构,并加速在商业产品中使用机器感知。作为BSD许可的产品,OpenCV使企业可以轻松地使用和修改代码。
软件简介:
该库具有2500多种优化算法,其中包括一整套经典和最新的计算机视觉和机器学习算法。这些算法可用于检测和识别人脸,识别对象,对视频中的人为行为进行分类,跟踪摄像机的运动,跟踪运动的对象,提取对象的3D模型,从立体摄像机生成3D点云,将图像拼接在一起以产生高分辨率整个场景的图像,从图像数据库中查找相似的图像,从使用闪光灯拍摄的图像中消除红眼,跟随眼睛的移动,识别风景并建立标记以将其与增强现实叠加在一起等。OpenCV拥有超过4.7万用户社区,下载量估计超过 1800万。该库在公司,研究小组和政府机构中得到广泛使用。
除了使用该库的Google,Yahoo,Microsoft,Intel,IBM,Sony,Honda,Toyota之类的知名公司外,还有许多诸如Applied Minds,VideoSurf和Zeitera之类的初创公司都在广泛使用OpenCV。OpenCV的部署用途包括将街景图像拼接在一起,检测以色列监视视频中的入侵,监视中国的矿山设备,帮助机器人在Willow Garage导航和拾取物体,检测欧洲游泳池溺水事故,在西班牙和纽约在土耳其检查跑道上的碎屑,检查世界各地工厂产品上的标签,然后在日本进行快速面部识别。
它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux, Android 和Mac OS。OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令。 目前正在积极开发功能齐全的 CUDA和 OpenCL接口。有500多种算法,而构成或支持这些算法的功能大约是其10倍。OpenCV用C ++本机编写,并具有可与STL容器无缝配合的模板化接口。
应用领域:
应用领域编辑
1、人机互动
2、物体识别
3、图像分割
4、人脸识别
5、动作识别
6、运动跟踪
7、机器人
8、运动分析
9、机器视觉
10、结构分析
11、汽车安全驾驶
软件特色:
1、在扩展模块中去掉了SIFT与SURF相关API的调用文件
现在如果想在OpenCV Python 4.x中想使用SIFT与SURF只有靠自己从源代码CMake来编译生成python版本的安装包才可以。
# OpenCV 3.x中
namedWindow(“input”, cv.CV_WINDOW_AUTOSIZE)
# OpenCV4.x
namedWindow(“input”, cv.WINDOW_AUTOSIZE)
2、全部取消CV_XXX这种枚举类型,比如在3.x中可以正常使用的语句
# 在OpenCV3.x中轮廓发现API返回三个值分别为
# image 返回的图像
# contours 每个轮廓的点集合
# hierarchy 每个轮廓对应的层次信息
binary, contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
3、findContours函数返回结果由3.x的三个参数变为两个参数
OpenCV4.0中需要改为
contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
4、增加了python语言版本的对DNN模块的加持!
支持图像分类、对象检测(SSD、RCNN、Faster-RCNN、mask-RCNN)、图像分割等网络的使用
新增功能:
DNN对很多网络层进行了提升,如ONNS中的LSTM, Broadcasting, Algebra over constants, Slice with multiple inputs;DarkNet中的grouped convolutions, sigmoid, swish, scale_channels;MobileNet-SSD v3
更多OpenVINO后端特性:可通过nGraph添加自定义层
优化CUDA后端,并杀掉一些BUG
可以使用最新的IPP-CV 2020.0.0Gold版本进行CPU优化
使用SIMD指令优化了integral、resize和RLOF实现
更多演示和例子
opencv_contrib:增加了Alpha Matting算法
calib3d:findChessboardCorners SB算法提升
core:getNumberOfCPUs()函数提升
imgcodecs:支持OpenJPEG库
highgui(Qt):增加到剪切板的复制功能
使用方法:
下载完成后得到OpenCV文件,便可以开始安装过程。其实所谓的安装是一个解压的过程,可执行文件是一个自解压的程序,双击后便会提示我们选择解压路径。
这里根据自己需求选择路径即可,特别要说明的是,该程序会将所有文件解压在opencv的文件夹下,因此不需要在选择解压路径中单独新建一个opencv文件夹。由于笔者电脑安装了多个版本的OpenCV,为避免混淆,单独创建一个名为opencv4的文件夹,解压到H:\opencv4。
选择好路径后点击【Extract】按钮,便可以等待解压过程的结束。整个OpenCV4的大小约为1G,根据电脑的性能不同,等待时间从几十秒到几分钟不等。
安装说明:
如果需要,请打开其他模块包装:
tar xf ../opencv_contrib-4.3.0.tar.gz
通过运行以下命令来 安装opencv:
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DENABLE_CXX11=ON \
-DBUILD_PERF_TESTS=OFF \
-DWITH_XINE=ON \
-DBUILD_TESTS=OFF \
-DENABLE_PRECOMPILED_HEADERS=OFF \
-DCMAKE_SKIP_RPATH=ON \
-DBUILD_WITH_DEBUG_INFO=OFF \
-Wno-dev .. &&
make