OpenCV是一个基于(开源)发行的跨平台计算机视觉库。该软件同时支持Linux、Windows和Mac OS操作系统,还提供了Python、MATLAB、Ruby等语言的接口,应用领域广泛,涉及人机互动、物体识别、运动跟踪、图像分割等多个领域。
应用领域
应用领域编辑
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,根据电脑的性能不同,等待时间从几十秒到几分钟不等。