10、特征检索与匹配
SURF特征
特征点匹配:类似ICP、PnP、Ransac算法
寻找已知物体
9、角点检测
协方差与协方差矩阵
协方差矩阵:两两特征之间的协方差组成的矩阵
Harris角点检测
Shi-Tomasi角点检测
亚像素级角点检测
此刻坐标往往都是整数出现,而在真实的世界中坐标多数时候都不是整数,假设我们计算出来的角点位置P(34, 189)而实际上准确角点位置是P(34.278, 189.706)这样带小数的位置,而这样的准确位置寻找过程就叫做子像素定位或者亚像素定位。这一步在SURF与SIFT算法中都有应用而且非常重要。常见的亚像素级别精准定位方法有三类:
1. 基于插值方法
2. 基于几何矩寻找方法
3. 拟合方法 - 比较常用
亚像素级角点检测是在一般角点检测基础之上将检测出的角点精确到亚像素级
因此需要先使用harris或shi-tomasi检测出角点,然后再调用cv::cornerSubPix()
在Harris的基础上,亚像素级角点检测
8、直方图与匹配
直方图对比:矩阵相关性计算、卡方计算
反向投影:非常简单的分割算法了
模板匹配
我们需要2幅图像:
原图像 (I): 在这幅图像里,我们希望找到一块和模板匹配的区域
模板 (T): 将和原图像比照的图像块
我们的目标是检测最匹配的区域:
为了确定匹配区域, 我们不得不滑动模板图像和原图像进行 比较 :
通过 滑动, 我们的意思是图像块一次移动一个像素 (从左往右,从上往下). 在每一个位置, 都进行一次度量计算来表明它是 “好” 或 “坏” 地与那个位置匹配 (或者说块图像和原图像的特定区域有多么相似).
对于 T 覆盖在 I 上的每个位置,你把度量值 保存 到 结果图像矩阵 (R) 中. 在 R 中的每个位置 (x,y) 都包含匹配度量值:
上图就是 TM_CCORR_NORMED 方法处理后的结果图像 R . 最白的位置代表最高的匹配. 正如您所见, 红色椭圆框住的位置很可能是结果图像矩阵中的最大数值, 所以这个区域 (以这个点为顶点,长宽和模板图像一样大小的矩阵) 被认为是匹配的.
7、图像轮廓与图像分割修复
轮廓
findContours()
drawContours
凸包
使用多边形将轮廓包围
图像的矩
分水岭算法
种子生长、阈值化、分水岭、漫水法有很多相似之处
距离变换
距离变换的基本含义是计算一个图像中非零像素点到最近的零像素点的距离,也就是到零像素点的最短距离。因此可以基于距离变换提取手掌重心。
图像修补
6、图像变换
边缘检测:一般步骤,滤波、增强、检测
canny边缘检测:高斯滤波、计算梯度和方向、非极大值抑制、双阈值处理、抑制孤立阈值点
边缘检测之Canny https://www.cnblogs.com/techyan1990/p/7291771.html
sobel算子:
laplacian算子:
霍夫变换
霍夫线变换:在极坐标系下确定r和θ两个变量
霍夫圆变换:有三个变量
霍夫梯度找圆算法
1)寻找圆心;
2)寻找半径。
参考:
OpenCV霍夫梯度找圆算法 https://blog.csdn.net/hhyh612/article/details/54947205
重映射
使用remap()函数
仿射变换:affine transformation:平移、旋转、缩放
直方图均衡化:灰度值均衡化,修改灰度值间隔的大小,调用equalizeHist()函数
5、滤波
这里这个邻域的处于与卷积神经网络的卷积非常类似
中值滤波:用中值替代均值,带来非线性
双边滤波:高斯滤波加上与像素值变化相关的权重
形态学处理
腐蚀膨胀的功能
膨胀,相当于求最大值的过程
腐蚀:相当于求最小值的操作
开运算:先腐蚀后膨胀,用来消除小物体,在纤细点分离物体
闭运算:先膨胀后腐蚀,排除小型黑洞
梯度操作:膨胀图-腐蚀图,将团块的边缘凸显出来,可以利用形态学梯度来保留物体的边缘轮廓
顶帽运算:
黑帽运算:非常好的获得轮廓
图像金字塔: pyramid
阈值化:可以视为最简单的图像分割,Threshold(),adaptiveThreshold()函数
4、基本操作
ROI区域
addweighted图像加权混合
通道分离,split()函数;
通道合并,merge()函数
3、图形的绘制
2、基本数据类型
1、Mat类的性质
官方文档写得真好!
http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/histograms/template_matching/template_matching.html