计算机视觉教程(滚坑)之旅-上

学习计算机视觉,并写下这些博客并不是想深究其原理,所以这两篇博客更多的是提出了一些名词性的概念,而且这本书大多数也是讲了学到计算机视觉中的原理。如果读者需要深究的时候,请自行去百度查找相关知识点。我会在这篇博客中,把《计算机视觉教程》这本书上提到的剩余部分的内容给罗列在下方。后面的话,就会结合Python和OpenCV直接做一些有趣的事情,如果有困难或者有想深究原理的时候,就会根据这两篇博客提到的一些东西,自行百度了解学习,这样是可以极大的增强学习的信心和兴趣以及学习效率的(虽然囫囵吞枣,但是是快速上手的不二之选。篇幅过多,故分为上下两篇,以供参考)

1. 图像预处理

图像采集后,为更有效的获取其中的信息,一般需要对图像进行一定的预加工

1.1 坐标变换(应用在几何失真校正)

图像平移、旋转和尺度变化都是常见的图像坐标变换。
几何失真校正是通过以下两个步骤,1.空间变换。2.灰度插值(2-D图像,提高精度,也可以使用双线性插值)。如果是3-D图像,则可以使用双线性插值方法。

1.2 灰度映射(通过改变图像中或部分像素的灰度来达到改善图像视觉效果的目的)

原理:根据增强的目的设计某种映射规则,并用相应的映射函数来对原始图像需要处理的部分进行操作。
图像求反、动态范围压缩、对比度增强

1.3 直方图修正

直方图均衡化(基本思想是把原始图的直方图变换为均匀分布的形式)

灰度直方图、累计直方图。

直方图规定化(有选择地增强图像中某个灰度值范围内的对比度或使图像灰度值的分布满足特定的要求)

单映射规则、组映射规则。

1.4 空间滤波

原理和分类

模板、模板运算(模板卷积最为常用)
模板的尺寸对滤波效果也有很大影响,实际中根据应用要求选取合适大小的模板。
借助模板运算可以进行空域滤波,将原始图像转换为增强图像。空域滤波可以分为平滑滤波和锐化滤波,也可以根据特点分为线性和非线性两类。

线性平滑滤波

领域平均
加权平均

线性锐化滤波

拉普拉斯模板

非线性平滑滤波

一般来说,中值滤波既能消除噪声,又能保持图像细节。书中示例中,中值滤波的效果要比领域平均处理的效果好,主要特点是滤波后图像中的轮廓比较清晰,且细节也得到了较好的保留。

非线性锐化滤波

图像处理中最常用的微分方法是利用梯度(基于一阶微分)。在离散空间,微分用差分实现,通常两个常用的差分模板结合构成一个梯度算子。实际滤波中,常使用这个梯度算子输出矢量的幅度,即梯度幅度

扫描二维码关注公众号,回复: 942949 查看本文章

2. 基元检测

基元检测也被称为特征检测。边缘是图像中比较低层的基元,是组成其他基元的基础。角点可看做是由两个边缘以接近直角相结合而构成的基元。直线段可看作是两个领近又互相平行的边缘相结合而构成的基元。圆可以看作将直线段弯曲、头尾相接而得到的。孔的形状与圆相同,但一般用孔表示比较小的圆。

2.1 边缘检测

3种常见的边缘剖面:阶梯状边缘、脉冲状边缘、屋顶状边缘。
对边缘的检测可以借助空域微分算子通过卷积来完成。
一阶微分算子给出梯度,也叫做梯度算子。最简单的梯度算子是罗伯特交叉算子(Roberts)。比较常用的还有蒲瑞维特算子(Prewitt)和索贝尔算子(Sobel)。在边缘灰度值过滤比较尖锐且图像中噪声比较小时,梯度算子的工作效果较好。
二阶导数算子检测阶梯状边缘需将算子模板与图像卷积,并确定算子输出值的过零点。
拉普拉斯算子对噪声比较敏感,所以将高斯加权平滑运算与拉普拉斯运算结合起来就得到马尔边缘检测方法
坎尼提出判断边缘检测算子的三个准则:信噪比准则、定位准则和单边缘响应准则。
满足上面三个准则的算子就称为坎尼算子
边缘像素连接的基础是它们之间有一定的相似性。通过梯度幅度和梯度方向来完成判断和连接,就有希望能得到闭合的边界。

2.2 SUSAN算子(很有特色的边缘角点检测的算子)

它不仅可以检测出图像中目标 的边缘点,而且能较鲁棒性地检测出图像中目标的角点。利用了一些积分的性质,在一定程度上有利于减少噪声的影响。

2.3 哈夫变换(利用图像全局特性对各种基元或目标进行检测的一种方法)

它适用于可解析表达的基元轮廓,而广义哈夫变换则推广到了没有解析表达的基元轮廓。当哈夫变换的参数较多时,计算量会大大增加。可以将高维哈夫变换分解为若干个低维哈夫变换。

2.4 位置直方图技术

对很小的孔(3*3像素)可以用模板匹配检测,对于大的圆形模板,可以使用哈夫变换来检测。而对于不大不小的的,如128*128的图像中有不到20个目标,或单个目标直径小于16个像素,可考虑位置直方图技术。

3. 目标分割

目标分割是指将感兴趣的目标区域从图像中分离并提取出来。有两种方法,一种是基于目标轮廓的,另一种是基于区域(即考虑所有属于目标区域的像素)的。

3.1 轮廓搜索

图搜索动态规划方法(借助有关具体问题的启发性知识减少搜索的方法)。

3.2 主动轮廓模型

能量函数。内部能量函数、膨胀力、外部能量函数、归一化。

3.3 基本阈值技术

单阈值分割、多阈值分割。
阈值分割方法有:全局阈值、局部阈值和动态阈值。
全局阈值的选取:1.极小值点阈值。2.最优阈值。3.最大凸残差阈值。
局部阈值的选取:1.直方图变换。2.灰度-梯度散射图。
动态阈值的选取:变化阈值法。

3.4 特色阈值方法

1.借助小波变换的多分辨率特性来帮助阈值选取。
2.借助对过滤区的确定来限定范围选取阈值。

4. 目标表达和描述

如果比较关心的是区域的反射性质,常采用基于区域的内部表达法;如果比较关心区域的形状则采用基于边界的外部表达法。

4.1 基于边界的表达

链码、缝隙码对边界的表达是逐点进行的。
更节省表达数据量的方法是把边界分解为若干的分别表示,借助凸包的概念进行。凸残差。
边界标记(把2-D的边界用1-D的较易描述的函数形式表达):
1.距离为角度的函数
2.ψ-s曲线
3.斜率密度函数
4.距离为弧长的函数

4.2 基于区域的表达

四叉树、围绕区域和骨架。

4.3 基于边界的描述

边界的长度、直接和形状数。

4.4 基于区域的描述

区域面积、密度和形状数。
不变矩、拓扑描述符。

5. 形状特性分析

5.1 形状紧凑性描述符

形状紧凑性描述符:1.外观比。2.形状因子。3.偏心率。4.球状性。5.圆形性。6.3-D形状相似性。

5.2 形状复杂性描述符

1.形状复杂性的简单描述符:1.细度比例。2.面积周长比。3.矩形度。4.与边界的平均距离。5.轮廓温度。6.凸度
2.利用对模糊图的直方图分析来描述形状复杂度:1.多尺度熵。2.多尺度标准方差。
3.饱和度

5.3 基于多边形的形状分析

对复杂的目标轮廓常可用多边形来逼近。多边形表达有较好的抗干扰性能,可以节省数据量。借助一系列线段的封闭集合,可以逼近大多数实用的曲线到任意的精度。
多边形获取:1.基于收缩的最小周长多边形法。2.基于聚合(merge)的最小均方误差线段逼近法。3.基于分裂(split)的最小均方误差线段逼近法。
多边形描述:1.直接特征。2.比较边界形状数。3.借助区域标记。

5.4 基于曲率的形状分析

基于曲率的描述符:1.曲率的统计值。2.曲率的最大值、最小值、拐点。3.弯曲能。4.对称测度。

计算机视觉教程(滚坑)之旅-下

猜你喜欢

转载自blog.csdn.net/weixin_40931845/article/details/80366813