OpenCv------入门必看

目录

 

 

 

1.OpenCv是啥?

 

2.可以用来干嘛,都有哪些应用?

3.OpenCv里都有哪些主要的模块?

    3.1  core (核心功能模块)

 Basic Structures (OpenCv基本数据库)

Dynamic Structures(动态数据结构)

Operations on Arrays(数组操作相关函数)

Drawing Functions(绘图功能)

XML/YAML Persistence(对XML和YAML语法的支持)

Clustering(聚类)

Utility and System Functions and Macros(实用函数、系统函数和宏)

OpenGL interoperablility(与OpenGL互操作)

    3.2  imgproc (图像处理模块)

Image Filtering(线性和非线性的图像滤波)

Geometric Image Transformations(图像的几何变换)

Miscellaneous Image Transformations(图像的其他变换)

Histograms(直方图)

Structural Analysis and Shape Descriptors(结构分析和形状描述)

Motion Analysis and Object Tracking(运动分析和目标跟踪)

Feature Detection(特征检测)

Object Detection(目标检测)

    3.3  highgui (高层用户界面和媒体输入/输出模块)

user interface(用户界面)

Reading and Writing Images and Video(图片和视频的读写)

Qt new Functions(Qt新功能)

    3.4  features2D(二维特征框架模块)

人脸识别

VR和AR

Feature Detection and Description

Common Interfaces of Feature Detectors(特征检测器的通用接口)

Common Interfaces of Descriptor Extractors(描述符提取器的通用接口)

Common Interfaces of Descriptor Matchers(描述符匹配器的通用接口)

Common Interfaces of Generic Descriptor Matchers(通用描述符匹配器通用接口)

Drawing Function of Keypoints and Matches(关键点和匹配结果的绘制功能)

Object Categorization(目标分类)

    3.5  flann(多维空间聚类和搜索模块)

Fast Approximate Nearest Neighbor Search(快速近视最近邻搜索)

Clustering(聚类)

    3.5  video(视频分析模块)

    3.6  calib3d(相机校准和三维重建)


 

 

1.OpenCv是啥?

Open Source Computer Vision Library,开源计算机视觉库,实现了许多图像处理(侧重于处理图像)和计算机视觉(侧重于模拟人的视觉)方面的通用算法。基于C/C++,支持Linux/Windows/MacOS/Android/iOS系统,还提供了Python,Matlab和Java等语言的接口。

 

2.可以用来干嘛,都有哪些应用?

人机互动、物体识别、图像分割、人脸识别、动作识别、运动跟踪、机器人、运动分析、机器视觉、结构分析、汽车自动驾驶等等。

 

3.OpenCv里都有哪些主要的模块?

    3.1  core (核心功能模块)

  •  Basic Structures (OpenCv基本数据库)

         包括存储数值向量(vec)、传递和读取图中的像素值(Scalar)、表示二维坐标(Point)、表示图像或矩形大小(Size)、定义二维矩形(Rect)、特殊矩形(RotatedRect)、颜色空间转换函数(cvtColor)等数据结构。

         参考博客:OpenCV—基本数据结构与示例

  • Dynamic Structures(动态数据结构)

        包括内存存储器、序列(CvSeq)、集合(Cvset)、图、树等动态数据结构。

        参考博客:OpenCV学习(4)——动态结构

  • Operations on Arrays(数组操作相关函数)

        包括矩阵点运算、矩阵统计运算、基本数学运算、代数运算和SVD、离散傅里叶变换、离散余弦变换等操作。

        参考博客:OpenCV中对数组(矩阵)的常用操作

  • Drawing Functions(绘图功能)

        包括画直线(line)、圆(circle)、椭圆(ellipse)、矩形(rectangle)、插入文字(putText)等功能。

        参考博客:OpenCV 绘图功能

  • XML/YAML Persistence(对XML和YAML语法的支持)

        包括数据结构FileStorage、文件写入、文件读取等操作。

        参考博客:Opencv笔记8——XML和YAML文件

  • Clustering(聚类)

        包括Kmeans分类算法、Kmeans 10均值、目标追踪(means-shift)等聚类算法。

        参考博客:opencv聚类算法

  • Utility and System Functions and Macros(实用函数、系统函数和宏)

        实用函数包括向量角度计算(fastAtan2)、立方根计算(cubeRoot)、向上取整(cvCeil)、向下取整(cvFloor)、四舍五入(cvRound)等函数;

        系统函数包括防内存溢出(alignPtr、alignSize、allocate、deallocate、fastMalloc、fastFree等)、格式输出(format)、系统相关(checkHardwareSupport、getNumThreads、getThreadNum、getTickCount、getTickFrequency、getCPUTickCount、setNumThreads等)、开关(功能类似#ifdef、#endf)、一些函数实现(setUseOptimized、useOptimized、saturate_cast等)等内容;

        宏包括断言(CV_Assert)、异常(error、Exception等)等类。

        参考博客:OpenCV学习笔记(三十七)——实用函数、系统函数、宏core

  • OpenGL interoperablility(与OpenGL互操作)

        参考博客:OpenCV 与 OpenGL 的关系是什么?

 

    3.2  imgproc (图像处理模块)

        是image processing的缩写。

  • Image Filtering(线性和非线性的图像滤波)

        线性滤波包括方框、均值、高斯滤波;

        非线性滤波包括终值、双边滤波。

        参考博客:OpenCV精进之路(二):图像处理——线性滤波和非线性滤波

  • Geometric Image Transformations(图像的几何变换)

        包括放缩(resize)、平移、旋转(通过getRotationMatrix2D()获得旋转矩阵,然后通过warpAffine()仿射变换将图像移动到指定中心)、置换和镜像(flip)、重映射(remap)等函数。

        参考博客:【opencv学习之二十三】OpenCV图像几何变换

  • Miscellaneous Image Transformations(图像的其他变换)

        包括色彩空间转换(CvtColor)、二值化(threshold)、自适应阈值的二值化(adaptivethreshold)、填充连通域(floodfill)、计算一次或两次积分图像(integral)、距离变换(distanceTransform)、分水岭图像分割(watershed)、彩色图像分割(grabCut)等算法。

        参考博客:图像各种变换 Miscellaneous Image Transformations

  • Histograms(直方图)

        包括直方图的计算和绘制(基本函数、一维直方图、RGB直方图),以及反向投影原理和与应用。

        参考博客:OpenCV从入门到放弃(七):直方图那些事儿

  • Structural Analysis and Shape Descriptors(结构分析和形状描述)

        包括很多轮廓、边缘、边界的相关函数,比如:moments、HuMoments、findContours、drawContours、approxPolyDP、arcLength、boundingRect、contourArea、convexHull、fitEllipse、fitLine、isContourConvex、minAreaRect、minEnclosingCircle、mathcShapes、pointPolygonTest。还有一些c版本的针对老版本的数据结构的函数比如cvApproxChains、cvConvexityDefects。

        参考博客:OpenCV学习笔记(十四)——图像结构分析与形状描述ImgProc

  • Motion Analysis and Object Tracking(运动分析和目标跟踪)

        包括很多追踪和分析算法。

        参考博客:OpenCV学习笔记:运动物体检测、跟踪和绘制曲线运动轨迹

                            OpenCV学习之运动分析与对象跟踪

  • Feature Detection(特征检测)

        包括加速稳健特征(SURF)、尺度不变特征转换(SIFT)、特征提取算法(ORB)、加速分割测试获得特征(FAST)、检测焦点(Harris)等算法

        参考博客:opencv 特征检测和特征匹配方法汇总

  • Object Detection(目标检测)

        包括HOG梯度直方图、图像金字塔、滑动窗口、非最大抑制、检测人、创建和训练目标检测器、计算机视觉中的磁带技术等。

        参考博客:opencv目标检测与识别(传统的目标检测方法)

 

    3.3  highgui (高层用户界面和媒体输入/输出模块)

        是high-level GUI and Media I/O的简写。

  • user interface(用户界面)

        包括图像载入函数(imread)、图像显示函数(imshow)、数组传达(InputArray)、创建窗口(namedWindow)、输出图像(inwrite)、轨迹条等。

        参考博客:Opencv3笔记3——highGUI图形用户界面初步

  • Reading and Writing Images and Video(图片和视频的读写)

        包括图像读入和读出、视频的导入和导出、读取摄像头实验等内容。

        参考博客:白话文讲计算机视觉-第一讲-OPENCV图片及视频读写

  • Qt new Functions(Qt新功能)

        参考博客:QT和opencv学习(二)opencv的加载、显示、修改、保存图像

                            QT和opencv学习(三)基本的图像容器 --Mat

 

    3.4  features2D(二维特征框架模块)

        是2D Features Framework的简写。

  • 人脸识别

        包括特征脸(Eigenfaces)、Fisherfaces、局部二进制模式直方图等算法。

        参考博客:基于OpenCV3实现人脸识别(原理篇)---PCA(Principal Component Analysis)

  • VR和AR

        参考博客:基于标记的AR的OpenCV实现

  • Feature Detection and Description

        包括Harris角检测(Harris Corner Detector)、Corner与SubPixel精度、Shi-Tomasi角检测仪及追踪功能、SIFT、SURF、FAST算法进行角检测、BRIEF (二进制鲁棒独立基本特征)、ORB (定向快速旋转)、特征匹配、强力匹配SIFT描述符和比率测试、基于FLANN的Matcher、特征匹配+Homography 查找对象等。

        参考博客:opencv-特征检测与描述

  • Common Interfaces of Feature Detectors(特征检测器的通用接口)

  • Common Interfaces of Descriptor Extractors(描述符提取器的通用接口)

  • Common Interfaces of Descriptor Matchers(描述符匹配器的通用接口)

  • Common Interfaces of Generic Descriptor Matchers(通用描述符匹配器通用接口)

  • Drawing Function of Keypoints and Matches(关键点和匹配结果的绘制功能)

        参考博客:图像特征关键点及关键点匹配绘制函数

                            OpenCV3学习(11.3)关键点的描述符KeyPoint对象与匹配类DMatch

  • Object Categorization(目标分类)

        参考博客:目标分类与目标检测

                            OpenCV:SVM目标分类简单示例

 

    3.5  flann(多维空间聚类和搜索模块)

        Clustering and Search in Multi-Dimensional Spaces。

  • Fast Approximate Nearest Neighbor Search(快速近视最近邻搜索)

        参考博客:学习OpenCV——Surf(特征点篇)&flann快速最近邻搜索算法

  • Clustering(聚类)

 

    3.5  video(视频分析模块)

        是Video Analysis的简写。

        主要包含运动分析和目标跟踪(Motion Analysis and Object Tracking),视频相关的。

        参考博客:学习笔记之——Opencv视频处理模块

 

    3.6  calib3d(相机校准和三维重建)

        是Camera Calibration and 3D Reconstruction的简写。

        包括基本的多视角几何算法、单个立体摄像头标定、物体姿态估计、立体相似性算法,3D信息的重建等。

参考博客:OpenCV学习之路(二十二)相机校准和三维重建

                    opencv-相机校准和3D重建

 

参考博客:王学岗NDK系列(七)OpenCV概述及android studio下ndk OpenCV环境搭建+简单实例

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值