二、Opencv-Python-Opencv基本应用
二、OpenCV简介
2.1 OpenCV
2.1.1 OpenCV简介
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。
OpenCV可用于解决如下领域的问题:
2.1.2 OpenCV-Python
-
OpenCV-Python是一个Python绑定库,旨在解决计算机视觉问题。
-
Python是一种由Guido van Rossum开发的通用编程语言,它很快就变得非常流行,主要是因为它的简单性和代码可读性。它使程序员能够用更少的代码行表达思想,而不会降低可读性。
-
与C / C++等语言相比,Python速度较慢。也就是说,Python可以使用C / C++轻松扩展,这使我们可以在C / C++中编写计算密集型代码,并创建可用作Python模块的Python包装器。这给我们带来了两个好处:首先,代码与原始C / C++代码一样快(因为它是在后台工作的实际C++代码),其次,在Python中编写代码比使用C / C++更容易。OpenCV-Python是原始OpenCV C++实现的Python包装器。
-
OpenCV-Python使用Numpy,这是一个高度优化的数据库操作库,具有MATLAB风格的语法。所有OpenCV数组结构都转换为Numpy数组。这也使得与使用Numpy的其他库(如SciPy和Matplotlib)集成更容易。
2.2 OpenCV部署
-
使用opencv-python,首先保证在python环境下
-
安装OpenCV之前需要先安装numpy, matplotlib.
pip install numpy pip install matplotlib
-
安装opencv-python
pip install opencv-python
-
如果要利用SIFT和SURF等进行特征提取时,还需要安装:
pip install opencv-contrib-python
-
测试
pip安装失败,网络超时,换国内的镜像源
阿里云: https://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/simple/
华中科技大学:http://pypi.hustunique.com/
华中理工大学:https://pypi.hustunique.com/
山东理工大学:https://pypi.sdutlinux.org/
eg:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ opencv-python
2.3 OpenCV模块
- Main modules:
- core. Core functionality 核心功能
- imgproc. Image Processing图像处理
- imgcodecs. Image file reading and writing图像文件读写
- videoio. Video I/O视频输入/输出
- highgui. High-level GUI高级图形用户界面
- video. Video Analysis视频分析
- calib3d. Camera Calibration and 3D Reconstruction相机校准和3D重建
- features2d. 2D Features Framework二维特征框架
- objdetect. Object Detection物体检测
- dnn. Deep Neural Network module深度神经网络模块
- ml. Machine Learning机器学习
- flann. Clustering and Search in Multi-Dimensional Spaces多维空间中的聚类和搜索
- photo. Computational Photography计算摄影
- stitching. Images stitching图片拼接
- gapi. Graph API图像API
- Extra modules:
- alphamat. Alpha Matting
- aruco. ArUco Marker Detection ArUco 标记检测
- barcode. Barcode detecting and decoding methods 条码检测和解码方法
- bgsegm. Improved Background-Foreground Segmentation Methods 改进的背景-前景分割方法
- bioinspired. Biologically inspired vision models and derivated tools 受生物启发的视觉模型和衍生工具
- ccalib. Custom Calibration Pattern for 3D reconstruction 用于 3D 重建的自定义校准模式
- cudaarithm. Operations on Matrices 矩阵运算
- cudabgsegm. Background Segmentation 背景分割
- cudacodec. Video Encoding/Decoding 视频编码/解码
- cudafeatures2d. Feature Detection and Description 特征检测和描述
- cudafilters. Image Filtering 图像过滤
- cudaimgproc. Image Processing 图像处理
- cudalegacy. Legacy support 传统支持
- cudaobjdetect. Object Detection 物体检测
- cudaoptflow. Optical Flow 光流
- cudastereo. Stereo Correspondence 立体声对应
- cudawarping. Image Warping 图像变形
- cudev. Device layer 设备层
- cvv. GUI for Interactive Visual Debugging of Computer Vision Programs 用于计算机视觉程序交互式可视化调试的 GUI
- datasets. Framework for working with different datasets 处理不同数据集的框架
- dnn_objdetect. DNN used for object detection 用于对象检测的 DNN
- dnn_superres. DNN used for super resolution DNN 用于超分辨率
- dpm. Deformable Part-based Models 基于可变形零件的模型
- face. Face Analysis 人脸分析
- freetype. Drawing UTF-8 strings with freetype/harfbuzz 使用 freetype/harfbuzz 绘制 UTF-8 字符串
- fuzzy. Image processing based on fuzzy mathematics 基于模糊数学的图像处理
- hdf. Hierarchical Data Format I/O routines 分层数据格式 I/O 例程
- hfs. Hierarchical Feature Selection for Efficient Image Segmentation 用于高效图像分割的分层特征选择
- img_hash. The module brings implementations of different image hashing algorithms. 该模块带来了不同图像散列算法的实现。
- intensity_transform. The module brings implementations of intensity transformation algorithms to adjust image contrast. 该模块实现了强度变换算法来调整图像对比度。
- julia. Julia bindings for OpenCV OpenCV 的 Julia 绑定
- line_descriptor. Binary descriptors for lines extracted from an image 从图像中提取的线的二进制描述符
- mcc. Macbeth Chart module 麦克白图表模块
- optflow. Optical Flow Algorithms 光流算法
- ovis. OGRE 3D Visualiser OGRE 3D 可视化器
- phase_unwrapping. Phase Unwrapping API 相位展开 API
- plot. Plot function for Mat data Mat 数据的绘图函数
- quality. Image Quality Analysis (IQA) API 图像质量分析 (IQA) API
- rapid. silhouette based 3D object tracking 基于轮廓的 3D 对象跟踪
- reg. Image Registration 图像配准
- rgbd. RGB-Depth Processing RGB深度处理
- saliency. Saliency API 显着性 API
- sfm. Structure From Motion 运动结构
- shape. Shape Distance and Matching 形状距离和匹配
- stereo. Stereo Correspondance Algorithms 立体对应算法
- structured_light. Structured Light API 结构光 API
- superres. Super Resolution 超分辨率
- surface_matching. Surface Matching 表面匹配
- text. Scene Text Detection and Recognition 场景文本检测与识别
- tracking. Tracking API 追踪 API
- videostab. Video Stabilization 视频稳定
- viz. 3D Visualizer 3D 可视化器
- wechat_qrcode. WeChat QR code detector for detecting and parsing QR code. 微信二维码检测器,用于检测和解析二维码。
- xfeatures2d. Extra 2D Features Framework 额外的 2D 功能框架
- ximgproc. Extended Image Processing 扩展图像处理
- xobjdetect. Extended object detection 扩展对象检测
- xphoto. Additional photo processing algorithms 其他照片处理算法