OpenCV2:开头篇 介绍

一.OpenCV简介

OpenCV所有的类和函数都在cv命名空间里面,可以用

using namespace cv;

#include "opencv2/opencv.hpp"

1.Core模块--核心组件模块

#include "opencv2/core/core_c.h"

#include "opencv2/core/core.hpp"

基础结构及操作 动态结构  数组操作 绘图函数  XML/YAML  聚类及实用程序  系统函数宏

2.Highgui模块--顶层GUI及视频I/O

#include "opencv2/highgui/highgui_c.h"

#include "opencv2/highgui/highgui.hpp"

用户界面 读/写图像及视频 QT新功能

3.Imgproc模块--图像处理模块

#include "opencv2/imgproc/imgproc_c.h"

#include "opencv2/imgproc/imgproc.hpp"

图像滤波  几何图像变换 混合图像变换 直方图  结构分析及形状描述  运动分析及目标跟踪/特征/目标检测

4.Photo模块--计算图像

#include "opencv2/photo/photo.hpp"

图像修复及去噪

5.Video模块--视频分析

#include "opencv2/video/video.hpp"

运动分析及目标跟踪

6.Features2d模块--2维特征框架

#include "opencv/features2d/features2d.hpp"

特征检测与描述 特征检测提取匹配接口 关键点与匹配点绘图及对象分类

7.Calib3d模块--摄像机标定及3维重建

#include "opencv2/calib3d/calib3d.hpp"

包含摄像机标定及3维重建

8.Objdetect模块--目标检测

#include "opencv2/objdetect/objdetect.hpp"

级联分类器及SVM

9.ML模块--及其学习

#include "opencv2/ml/ml.hpp"

包含机器学习(统计模型 贝叶斯分类器 最近邻分类器 支持向量机 决策树 提升 梯度提升树  随机树 超随机树  最大期望 神经网络 及 机器学习数据)

10.Flann模块--聚类及多维空间搜索

#include "opencv2/flann/miniflann.hpp"

包含计算几何,快速最近邻搜素及聚类

11.Contrib模块--贡献及实验成果

#include "opencv2/contrib/contrib.hpp"

未成熟的理论应用,包含立体匹配 人脸识别 视网膜模型等

12.Legacy模型--弃用的成果

运动分析 最大期望 直方图 CAPI  特征检测及描述等模块中弃用的成果

13.Ocl模块--计算机视觉中OpenCL加速

计算机视觉中OpenCL加速模块

14.Nonfree模块--未免费功能

主要包含特征检测与描述相关受保护成果

15.Stitching模块--图像拼接

图像拼接顶层操作函数 旋转 自动标定 仿射变换 接缝估计 曝光补充  及 图像融合技术

16.Gpu模块--计算机视觉中GPU加速

GPU模块及数据结构,包含图像处理与分析模块

二.图像常用方法

图像可以分为四种基本类型:二值图像、灰度图像、索引图像、RGB图像
线性代数  矩阵分析
 
图像处理常用的方法:
    1.图像变换
 
    2.图像编码与压缩
 
    3.图像增强与复原
 
    4.图像分割
 
    5.图像描述
 
    6.图像分类(识别)
 
    7.图像恢复
 
    8.图像匹配分析
 
一、256色转灰度图
二、Walsh变换
三、二值化变换
四、阈值变换
五、傅立叶变换
六、离散余弦变换
 
数字图像处理领域的二十四个典型算法及vc实现、第二章
七、高斯平滑
八、图像平移
九、图像缩放
十、图像旋转

直方图均衡化  常见滤波  图像锐化 边缘提取  二值化

三.数字图像处理内容

1.点运算

点运算主要针对图像的像素进行加/减/乘/除等运算.图像的点运算可以有效地改变图像的直方图分布,可以提供图像的分辨率以及图像均衡

2.几何变换

几何变换包括对图像的坐标变换/移动/缩小/放大/选择,多个图像的配准以及图像的扭曲校正

3.图像增强

图像增强的作用主要是突出图像的重要信息,同时减弱或者去除不需要的信息.常用的方法有灰度变换增强/直方图增强/频域增强以及彩色增强

4.图像复原

图像复原的主要目的是去除干扰和模糊,恢复图像的本来面目.例如去噪声复原处理常用的方法有线性复原和非线性复原

5.图像的重建

图像的重建起源于CT技术的发展,主要是利用采集的数据来重建图像,图像重建的主要算法有代数法/迭代法/傅立叶反投影法和使用最广泛的卷积反投影法

6.图像形态学处理

图像形态学是数学形态学的延伸,可以实现图像的腐蚀/膨胀和细化等效果

7.图像分割

图像分割的主要目的是将用户感兴趣的区域划分出来,主要方法有边缘分割法/阈值分割法/区域分割法和纹理分割法

8.图像的编码

图像编码主要是对图像进行压缩,制定多种编码标准

9.图像匹配

图像匹配是指通过一定的匹配算法在多幅图像之间进行识别,可分为以像素为基础的匹配和以特征为基础的匹配

四.OpenCV学习流程

1.先导篇

参考OpenCV2:先导篇 基础数据类型

参考OpenCV2:先导篇 图像分类

2.幼儿园篇

参考: OpenCV2:幼儿园篇 第一章 创建图像并显示

参考: OpenCV2:幼儿园篇 第二章 读取图像

参考: OpenCV2:幼儿园篇 第三章 导出图像

参考: OpenCV2:幼儿园篇 第四章 访问图像

参考: OpenCV2:幼儿园篇 第五章 图像几何变换

参考: OpenCV2:幼儿园篇 第六章 图像转换

参考: OpenCV2:幼儿园篇 第七章 界面事件

参考: OpenCV2:幼儿园篇 第八章 视频操作

3.小学篇

参考: OpenCV2:小学篇 图像灰度变换技术-阈值化处理

参考: OpenCV2:小学篇 图像灰度变换技术-直方图处理

参考: OpenCV2:小学篇 图像灰度变换技术-距离变换

参考: OpenCV2:小学篇 图像灰度变换技术-其他灰度变换

4.初中篇

图像平滑也称为图像模糊,通过图像滤波可以减少图像噪声和伪影,或者用blur()降低图像分辨率

图像平滑从信号处理的角度来看就是去除其中的高频信息,保留低频信息

参考: OpenCV2:初中篇 图像平滑技术-图像采样

参考: OpenCV2:初中篇 图像平滑技术-傅里叶变换和卷积

参考: OpenCV2:初中篇 图像平滑技术-图像噪声

参考: OpenCV2:初中篇 图像平滑技术-空间滤波

参考: OpenCV2:初中应用篇 图像对比技术-图像相似度

5.高中篇

图像锐化是补偿图像轮廓,增强图像的边缘及灰度跳变部分,使得图像变得清晰

参考: OpenCV2:高中篇 图像锐化技术-边缘检测算子

6.大学篇

图像增强主要是提高图像细节和对比度,通过图像平滑(降噪 去伪影) 和 图像锐化(加强边缘)

参考: OpenCV2:大学篇 形态学技术-腐蚀与膨胀操作

7.硕士篇

参考: OpenCV2:硕士篇 图像分割技术-分水岭分割

8.博士篇

9.总结篇

参考:OpenCV2:总结篇 core模块

参考:OpenCV2:总结篇 highgui模块

参考OpenCV2:总结篇 PS算法实现

3.应用篇

参考: OpenCV2:应用篇 QT+OpenCV实现图片编辑器

原文地址:https://www.cnblogs.com/k5bg/p/11083891.html