## lec8 算法2
### 一、几何变换:
#### (一) 仿射变换
1、齐次坐标形式表示
2、可以表示的变换类型:旋转变换,伸缩变换,倾斜变换
#### (二)投影变换
1、变换含义:将一个平面投影到另一个平面上
![image-20220525152201081](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220525152201081.png)
2、单应矩阵:自由度为8
#### (三)仿射变换像素值确定方法:插值法
1、最邻近插值法:对于某一个像素而言,将其映射到原图像上,然后寻找距离它最近的像素值的值,它在新图像上的像素值就是这个最近的像素值
*有锯齿*
2、**双线性插值**:分别对水平和垂直方向做插值,然后综合
![image-20220525152749904](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220525152749904.png)
![image-20220525152801762](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220525152801762.png)
3、双三次插值
#### (四)平滑
先对原图像做平滑,然后使用插值方法进行仿射变换,可以改善最邻近插值法走样现象
### 二、极坐标变换
#### (一)rc与 $d\phi$ 关系
$$
r=m_r-d\sin\phi\\
c=m_c+dcos\phi
$$
#### (二)映射关系
通过d,$\phi$ 建立二维矩形区域,每个点对应原图上的一个像素点,可以将圆弧展开成矩形
### 三、图像分割
#### (一)二值化
#### (二)亚像素边界
双线性插值法:通过双线性插值法得到一个曲面,然后用所求的边界灰度值平面与曲面相交得到亚像素精度边界
### 四、特征提取:区域特征
#### (一)矩
零阶矩:连通域的面积
$$
m_{p,q}=\Sigma r^pc^q
$$
**一阶矩(归一化的矩):连通域的亚像素精度中心点**
$$
n_{p,q}=\frac {\Sigma r^pc^q} A
$$
中心矩(归一化):
二阶中心矩:跟椭圆的长轴短轴($r_1,r_2$),旋转角($\theta$)有关
> 通过$\frac{r_1}{r_2}$判断是圆还是椭圆
#### (二)外接矩形
#### (三)轮廓长度
基于链码定义:对角线长度为$\sqrt 2$,上下左右相邻为1
#### (四)矩形度
$$
R=\frac A {A_{out}}
$$
越接近1越像矩形
#### (五)圆形度:更多考虑boundary
$$
C = \frac {P^2}{4\pi A}
$$
P是区域的周长,A是区域的面积
#### (六)圆形性
与五合用:先计算圆形性,再计算region的圆形度
## Lec9 算法3
### 一、灰度图像特征
#### (一)区域灰度均值
#### (二)灰度区域方差
第一个区域的灰度分布作为参考,让下一副图像的灰度分布接近,由此减小其他因素的影响
#### (三)矩
$$
m_{p,q}=\Sigma g_{r,c}r^pc^q
$$
#### (四)形态学操作
### 二、Blob 分析
![image-20220525203434253](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220525203434253.png)
### 三、模板匹配
#### (一)相似性
#### (二)模板匹配和相对关系确定ROI
#### (三)算法
##### 灰度匹配
SAD:绝对值误差--->模板像素和滑动窗口对应位置像素差值
SSD:平方误差
问题:亮度变化时(整体灰度变)即使是相同的形状仍然会返回很大的SAD/SSD误差
==越接近0质量越高==
##### NCC模板匹配:归一化相关系数
1、NCC公式
$$
NCC(r,c)=\frac 1 n \Sigma \frac{t(u,v)-m_t}{\sqrt {s_t}}\frac{f(u+r,v+c)-m_f}{\sqrt {s_f}}
$$
其中m代表均值,s代表方差
2、NCC取值范围
$$
-1
## Lec11 增强模板匹配
### 一、广义霍夫变换
#### (一)边缘点信息
与中心点连线,得到:
1、一个由中心点指向边缘点的向量
2、向量与水平方向的夹角$\theta$
3、梯度方向
#### (二)R-table:基于模板构建
#### (三)算法流程
对test image上的边缘上的每一个点,计算它的Edge direction(梯度方向),在上述R
-table内寻找可能的几个$(r,\theta)$数对,计算中心$(x_c,y_c)$,然后投票
得票数最高的$(x_c,y_c)$就是所求的中心
#### (四)旋转和缩放
投票表变成4维$(x_c,y_c,S,\alpha)$
### 二、基于Shape的模板匹配
#### (一)相似度关系
1、依据:边缘点的梯度方向
2、相似度函数
模板上取N个边缘点并计算他们的梯度,用放射变换将模板进行旋转和平移,得到新的方向向量$d'$
$$
s=\frac 1 n \Sigma }
$$
即所有**模板边缘点梯度**和**旋转后像素对应testImage上点的梯度**内积的和,该值越大说明模板越接近
#### (二)解决的问题
1、图像物体遮挡
2、边缘杂乱(方向向量乱场)
#### (三)存在的问题
1、光照对梯度大小影响明显
解决方法:归一化
2、梯度完全相反时,形状匹配,但是s=-1
解决方法:公式加上绝对值
### 三、基于Shape的模板匹配加速
#### (一)提前停止
计算一部分内积,当大于阈值时停止计算其他的内积
#### (二)图像金字塔
#### (三)规划ROI
#### (四)离线训练
提前计算边缘点的梯度,以及各种旋转和缩放值后的梯度结果
#### (五)减少边缘点的数量
### 四、旋转和缩放
![image-20220526094315166](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220526094315166.png)
与NCC策略相同
#### 备注
1、对称性物体要考虑角度的搜索范围:方形<90°,圆形没有角度
2、极性:忽略极性方法
### 五、基于Shape的模板提高精度
#### 最小二乘平差
在已经得到像素级的位置坐标和旋转角度时:
![image-20220526094856333](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220526094856333.png)
设有旋转变换T
最小化E,求偏导得到对应最小值处的$(x,y,\theta)$
### 六、柔性物体有畸变的模板匹配
#### 变形模板
1、图像金字塔的更高层,图像的畸变不明显
2、对每一层,k-means法对模板进行聚类,每一族单独匹配,相似度函数相加