导图社区 数字图像处理
这是一篇关于数字图像处理的思维导图
编辑于2022-03-05 21:30:58数字图像处理
空间域处理
灰度变换(图像增强三类函数:线性函数、对数函数、幂律函数)
图像增强:直方图均衡、直方图匹配(规定化)、局部直方图均衡
空间滤波(空间滤波器也称空间掩膜、核、模板或窗口)
低通滤波器:通过低频的滤波器。作用:模糊(平滑)图像,忽略细节。
平滑滤波器:cv::blur()
均值滤波器(平滑线性滤波器):类似于求和/积分后取平均
统计排序非线性滤波器
中值滤波器(最知名):cv::medianBlur()函数,功能:使拥有不同灰度的点看起来更接近于它的相邻点
双边滤波器:cv::bilateralFilter()
最大值滤波
最小值滤波 等
高通滤波器:凸显图像过度区域,边缘突出,增强图像对比度。利用微分实现。
一阶微分:梯度算子,反映图像的变化点,突出凸显边界(边缘)。
二阶微分:拉普拉斯算子,反映图像的剧烈变化点,突出图像的细节。
混合空间增强
拉普拉斯算子:保留细节信息,同时保留噪声。cv::Laplacian
sobel算子:保留轮廓信息,同时平滑图像。cv::Sobel
均值滤波算子:抑制图像噪声
频率域滤波
平滑图像
理想低通滤波器( ILPF)
布特沃斯低通滤波器( BLPF)
一维高斯低通滤波器( GLPF)
锐化图像
二维理想高通滤波器(IHPF)
布特沃斯高通滤波器(BHPF)
高斯高通滤波器GHPF:cv::GaussianBlur()。
频率域的拉普拉斯算子
高频强调滤波
同态滤波
选择性滤波
带阻滤波器或带通滤波器
陷波滤波器
快速傅里叶变换(FFT)
离散傅里叶变换(cv::dft,逆变换:cv::idft)
频谱乘法(cv::mulSpectrums())
离散余弦变换(cv::dct,逆变换:cv::idct)
彩色模型
(1)RGB彩色模型;(2)CMY和CMYK彩色模型;(3)HSI彩色模型
形态学图像处理
形态学(morphology):形态学变换 cv::morphologyEx函数
结构元(SE):getStructuringElement()
以下是灰度级形态学
腐蚀: 缩小或细化二值图像中的物体。代码函数:erode()
膨胀:扩大二值图像中的物体。代码函数:dilate(src, kernel,iterations=None) 同erode()函数
开运算:用来消除小物体,在纤细点处分离物体,并且在平滑较大物体边界的同时不改变其面积
其实就是先腐蚀后膨胀的过程,其数学表达式为: dst = open(src, element) = dilate(erode(src, element))
闭运算:排除小型空洞(指黑色区域),平滑物体轮廓,弥合(连接)窄的间断点与沟壑,填补轮廓线断裂
其实就是先膨胀后腐蚀的过程,其数学表达式为: dst = open(src, element) = erode(dilate(src, element))
边界提取:Laplacian
孔洞填充;连通分量的提取;凸壳;细化;粗化;骨架;裁剪
Top-hat(顶帽)变换:灰度级图像f减去其开运算。重要用途:校正不均匀光照的影响。用于暗背景上的亮物体,底帽变换则相反。常常分别称为白顶帽变换和黑底帽变换。
bottom-hat(底帽)变换:灰度级图像的闭运算减去f本身。
粒度测定;纹理分割
图像分割
多数的图像分割算法均是基于灰度值的不连续和相似的性质
基于图像边缘分割
Roberts算子;Prewitt算子;Marr-Hildreth边缘检测器
Sobel算子;Laplacian算子
Canny算子
轮廓检测(find_contours)
孤立点的检测:Harris角点;FAST特征;SURF特征。线检测:霍夫线变换(cv::HoughLines(),cv::HoughLinesP());LSD。霍夫圆变换(cv::HoughCircles())。
基于图像阈值分割
利用图像中要提取的目标区域与其背景在灰度特性上的差异。图像阈值处理在图像分割应用中处于核心地位。
可变阈值处理通常称为动态阈值处理或自适应阈值处理:cv::adaptiveThreshold()函数
Otsu(最大类间方差算法)算法:用在当目标与背景的面积相差不大时,能够有效地对图像进行分割,适用于求图像全局阈值的场合。代码函数:cv::threshold()
基于区域的分割
区域生长算法
区域分裂与聚合
基于图论的分割
方法有:Normalized Cuts算法,Graph Cuts算法(cv::grabCut()函数),Superpixel lattice算法
形态学分水岭分割
漫水填充:cv::floodFill()函数
形态学分水岭算法:cv::watershed()函数
基于神经网络的分割
基于跟踪:(1)轮廓跟踪法:提取连通区域的轮廓;(2)光栅跟踪法。
图像特征提取
https://blog.csdn.net/u014410989/article/details/100688432
OpenCV中最常使用的特征检测和提取算法有: Harris、SIFT、SURF、FAST、BRIEF、ORB等
Harris角点检测:OpenCV 函数:cornerHarris
子主题
缺点:Harris角点具有平移不变形和旋转不变形,但是没有尺度不变形
FAST主要用于角点检测
BRIEF:对于BRIEF,它仅仅是一种特征描述符,它不提供提取特征点的方法
ORB:结论:如果对计算实时性要求非常高,可选用ORB算法,但基本要保证正对拍摄;如果对实行性要求稍高,可以选择SURF;基本不用SIFT。
LBP(Local Binary Pattern):已在人脸识别、表情识别、行人检测领域已经取得了成功
HOG:
HAAR:人脸检测用的最多。
目标识别(模式识别)
决策理论方法
匹配
结构方法
图像处理及计算机视觉
技术路线
典型的技术路线是:目标分割 ——>目标检测 ——>目标识别 ——>目标跟踪
举例如:需要对视频中的小明进行跟踪,处理过程将经历如下过程: (1)首先,采集第一帧视频图像,因为人脸部的肤色偏黄,因此可以通过颜色特征将人脸与背景分割出来(目标分割); (2)分割出来后的图像有可能不仅仅包含人脸,可能还有部分环境中颜色也偏黄的物体,此时可以通过一定的形状特征将图像中所有的人脸准确找出来,确定其位置及范围(目标检测); (3)接下来需将图像中的所有人脸与小明的人脸特征进行对比,找到匹配度最好的,从而确定哪个是小明(目标识别); (4)之后的每一帧就不需要像第一帧那样在全图中对小明进行检测,而是可以根据小明的运动轨迹建立运动模型,通过模型对下一帧小明的位置进行预测,从而提升跟踪的效率(目标跟踪)
https://blog.csdn.net/qq_30815237/article/details/94018912
目标分割:假定数据是图像,任务是把目标分割出来。
目标检测:检测目标在图片中的具体位置
目标识别:即是在所有的给定数据中,分类出哪一些sample是目标,哪一些不是。这个仅仅做一下分类任务。yes or no
目标跟踪:这个任务涉及的数据一般是时间序列,完成这个任务首先要目标定位。常见的情况是目标被定位以后,算法需要在后面的序列数据中,快速高效地对目标进行再定位。为了避免不必要的重复计算,可以充分利用时间序列的相关性,可能涉及到一些几何变换(旋转,缩放等),运动伪影处理等问题。
目标检测
基于经典手工特征的目标检测
传统的目标检测(滑动窗口的框架)
(1)滑动窗口;(2)提取特征(SIFT, HOG, LBP);(3)分类器(SVM)。
Viola-Jones 检测器
HOG行人检测器
可变形部件模型
基于深度学习的目标检测
Regions with CNN Features (R-CNN)
Spatial Pyramid Pooling Networks (SPPNet)
Fast-RCNN
Faster-RCNN
以上基于区域提名,Two Stage目标检测算法
Feature Pyramid Networks
You Only Look Once (YOLO):针对于two-stage目标检测算法普遍存在的运算速度慢的缺点,yolo创造性的提出了one-stage。也就是将物体分类和物体定位在一个步骤中完成。
Single Shot MultiBox Detector (SSD):SSD算法是一种直接预测目标类别和bounding box的多目标检测算法。算法的主网络结构是VGG16,将最后两个全连接层改成卷积层,并随后增加了4个卷积层来构造网络结构。
Retina-Net
目标检测中的关键技术
多尺度检测方法:目标检测中的“多尺度”问题包含了“不同大小”和“不同长宽比”两方面的内容
包围框坐标回归
加速策略:(1)从算法原理角度出发,设计小的大O(x)算法;(2)硬件方面,通过多核并行计算,如利用GPU加速。
积分图特征
Cascades
决策树
特征图共享
一体化检测
供参考网址
https://blog.csdn.net/qq_38906523/article/details/79971817?depth_1-;
https://blog.csdn.net/f290131665/article/details/81012556?depth_1-
OpenCV
基础类型
Point类
cv::Point{2,3}{b,s,i,f,d}。b:uchar;s:short int;i:32bits int;f:float;d:double。
固定矩阵类cv::Matx<>
cv::Matx{1,2,..6}{1,2,..6}{b,s,i,f,d},同上。
固定向量类cv::Vec
cv::Vec{2,3,4,6}{b,s,w,I,f,d}。w:表示unsigned short。
辅助对象
智能指针cv::Ptr
类型标识值的含义
C1
C2
C3
C4
CV_8U
0
8
16
24
CV_8S
CV_16U
CV_16S
3
11
19
27
CV_32S
CV_32F
CV_64F
6
14
22
30