传统计算机视觉
1、成像基本原理
1.1 成像原理
1.2 数字图像
2、数字图像基本操作
2.1 像素级操作
2.2 直方图操作
2.3 形态学操作
3、数字滤波
3.1 噪声
3.2 空域滤波
3.3 频域滤波噪声
4、特征提取
4.1 二值化操作(双峰,p参数法,大津法,迭代法,Bernsen法,基于WaLL算法的自适应阈值,快速自适应阈值)、
4.2 特征提取 (角点检测,直线检测,任意形状检测)
成像基本原理
成像原理
小孔成像
- 光在同种均匀介质中,在不受引力作用干扰的情况下沿直线传播的原理
- 特性 小孔越大,亮度越高,成像的精度越低 小孔越小,亮度越低,成像的精度越高 小孔不变,物距增加,分辨率降低 小孔不变,相距增加,分辨率提升
### 透镜原理 - 利用了光的折射原理,通过透镜将光汇聚于一点
- 解决小孔成像的劣势:亮度与分辨率之间的矛盾
![cfd1a82a7e000daac5d41f96c07392f1.png](https://i-blog.csdnimg.cn/blog_migrate/c2fe1b13d502cb21d8efbdaf989cd18c.jpeg)
小孔成像vs透镜成像
◦ 透镜成像利用的是光的折射现象,小孔成像利用的是光的直线传播
◦ 透镜成像必须有镜片,小孔成像只有孔,没有镜片
◦ 透镜成像可以汇聚光线,小孔成像只能“过滤”光线
◦ 透镜成像有焦距概念,小孔成像无焦距概念
◦ 透镜成像只能在特定距离成清晰像:1/u+1/v=1/f
◦ 小孔成像在任何距离都能成清晰像,没有像距概念
◦ 透镜成像有景深概念,小孔成像无景深概念
成像基本原理
数字图像
数字图像的参数与格式
灰度图像
灰度可以直观理解为图像的明暗程度,基本等价于亮度(亮度更多用在彩色图像上)
• 其与射入相平面的能流直接相关
• 在场景中,与1)场景光照情况,和2)物体表面对光的反射情况相关
✓ 测量表明:图像辐照强度(灰度、亮度)与场景辐射强度成正比
灰度图像定义:
A grayscale digital image is an image in which the value of each pixel is a single sample, that is, it carries only intensity information.
• Images of this sort, also known as black-and-white, are composed exclusively of shades of gray
• The grayscale varies from black at the weakest intensity to white at the strongest
![eebdbaae6f967eb58777d97975b4b919.png](https://i-blog.csdnimg.cn/blog_migrate/6cb6664ae5ce9d3338e676f38e43b744.jpeg)
灰度的范围通常是【0,255】
彩色图像
颜色模型指的是某个三维颜色空间中的一个可见光子集,它包含某个色彩域的所有色彩。一般而言,任何一个色彩域都只是可见光的子集,任何一个颜色模型都无法包含所有的可见光。常见的颜色模型有RGB CIECMY/CMYK、HSK NTSC、YcbCr、HSV 等。
RGB颜色模型
RGB(Red, Green, Blue)颜色模型通常使用于彩色阴极射线管等彩色光栅图形显示设备中,彩色光栅图形的显示器都使用R、G、B数值来驱动R、G、B 电子枪发射电子,并分别激发荧光屏上的R、G、B三种颜色的荧光粉 发出不同亮度的光线,并通过相加混合产生各种颜色;扫描仪也是通过吸收原稿经反射或透射而发送来 的光线中的R、G、B成分,并用它来表示原稿的颜色。
CMYK颜色模型
CMYK(Cyan, Magenta, Yellow)颜色空间应用于印刷工业,印刷业通过青(C)、品(M)、黄(Y)三原色油墨的不同网点面积率的叠印来表现丰富多彩的颜色和阶调,这便是三原色的CMY颜色空间。实际印刷中,一般采用青(C)、品(M)、黄(Y)、黑(BK)四色印刷,在印刷的中间调至暗调增加黑版。当红绿蓝三原色被混合时,会产生白色,但是当混合蓝绿色、紫红色和黄色三原色时会产生黑色。既然实际用的墨水并不会产生纯正的颜色, 黑色是包括在分开的颜色,而这模型称之为CMYK。CMYK颜色空间是和设备或者是印刷过程相关的,则工艺方法、 油墨的特性、纸张的特性等,不同的条件有不同的印刷结果。所以CMYK颜色空间称为与设备有关的表色空间。
YUV颜色模型
在现代彩色电视系统中,通常采用三管彩色摄像机或彩色CCD(点耦合器件)摄像机,它把摄得的彩色图像 信号,经分色、分别放大校正得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y、B-Y, 最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。这就是我们常用的YUV色彩空间。 采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量, 那么这样表示的图就是黑白灰度图。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机 的兼容问题,使黑白电视机也能接收彩色信号。
YCbCr
YCbCr或Y'CbCr有的时候会被写作:YCBCR或是Y'CBCR,是色彩空间的一种,通常会用于影片中的影像连续处理,或是数字摄影系统中。Y'为颜色的亮度(luma)成分、而CB和CR则为蓝色和红色的浓度偏移量成份。Y'和Y是不同的,而Y就是所谓的亮度(luminance),表示光的浓度且为非线性,使用伽马修正(gamma correction)编码处理。
![51d350486a6216b490238712544582be.png](https://i-blog.csdnimg.cn/blog_migrate/03063a5bf3a78e0f4cbaf3901f821bdf.jpeg)
CIE 1931色度图是用标称值表示的CIE色度图,x表示红色分量,y表示绿色分量。E点代表白光,它的坐标为(0.33,0.33);环绕在颜色空间边沿的颜色是光谱色,边界代表光谱色的最大饱和度,边界上的数字表示光谱色的波长,其轮廓包含所有的感知色调。所有单色光都位于舌形曲线上,这条曲线就是单色轨迹,曲线旁标注的数字是单色(或称光谱色)光的波长值;自然界中各种实际颜色都位于这条闭合曲线内;RGB系统中选用的物理三基色在色度图的舌形曲线上。
数字图像的基本操作
像素级操作
对每一个像素点的灰度值操作,得到的值赋予该像素点:
◦ 调整图像亮度、清晰度、对比度
◦ 不考虑近邻关系(或可视为1*1窗口滤波)
◦ 操作速度快
像素级操作可以总结为以下方程:
s(x,y) = T{ r(x,y)}
负操作
◦ 不是真正的取负号,是对每一个像素点的像素值取对偶值
◦ 基本功能为亮度转换,便于图像可视化与后续处理
公式:s = 255 - r
![ac5f7000789b160d092006b1ff568fd7.png](https://i-blog.csdnimg.cn/blog_migrate/fbf1e9a66c13c08d7f11ca761623c0c5.jpeg)
对数操作
◦ 将像素灰度取log, 为保证得到的灰度值为正数,取log前+1
◦ 功能:Compresses the dynamic range of images with large variations in pixel values
公式:
![64219b5646280888ac07f9a1064da993.png](https://i-blog.csdnimg.cn/blog_migrate/fbc9b21c21207fe0414ed5cdb809434e.jpeg)
幂操作
◦ 按照幂关系(power-law)调整图像显示效果
◦ 公式如下,其中c, 为常数
s =
◦ 当γ>1,扩宽高像素值的动态 范围
◦ 当γ<1,扩宽低像素值的动态 范围
![b90c677ac1516107da631a84e836bc00.png](https://i-blog.csdnimg.cn/blog_migrate/04b07fcb4c333cfc586ad124fa169db2.jpeg)
对比度拉升
◦ 提升图像中特定灰度区域的动态分布( dynamic range )
◦ 右图中坐标(r1,s1) and (r2,s2)用来控制转换函数( s=T(r) 中 的T)的控制区域
◦ 当r1= s1 and r2= s2, 线性变换,图像无变化
◦ 当r1=r2, s1=0 and s2=L-1, 阈值变换(Thresholding)
![d7a7ac1a4729ad8428b1acd881db9d2f.png](https://i-blog.csdnimg.cn/blog_migrate/2fd145e067aab1c08d06a55ffa876bf8.jpeg)
![eef322ab71e4a5a496b372943e58522d.png](https://i-blog.csdnimg.cn/blog_migrate/85d48a9c1910c09ccd921dc3d1233b8b.jpeg)
◦ 左图为原图,中图为Contrast stretching 处理后的图片,右图为阈值变换后的图片
数字图像的基本操作
直方图操作
直方图均衡化
◦ 功能类似于上述Contrast stretching
◦ 优势在于可以实现自动的Contrast stretching,因为通过均 衡化的机制可以自动产生转换函数,来得到直方图均衡分布
图像
公式:
![2d2e5e612fb07a23dd42d52c2ec19574.png](https://i-blog.csdnimg.cn/blog_migrate/0ba80457ce4e85401320243a37155de4.jpeg)
![d8958e207a54a0e2b7801f87405e2299.png](https://i-blog.csdnimg.cn/blog_migrate/5f00e346755e7248a744b351c5a79363.jpeg)
![f25f7df71e6c6c4d2377b583e5a74b16.png](https://i-blog.csdnimg.cn/blog_migrate/a61f5c190209c6989e41562d59bb485a.jpeg)
![944c30c8bbd130ea3333393559a9a408.png](https://i-blog.csdnimg.cn/blog_migrate/4fd7339442126db80e9c1081667e5243.jpeg)
直方图匹配
![5490028714a0633ef2e23dc92332d8cd.png](https://i-blog.csdnimg.cn/blog_migrate/542f46c3231e8876d2c5c02e6f1d2c3b.jpeg)
![61ace628017f9056098e2ae3f78f6284.png](https://i-blog.csdnimg.cn/blog_migrate/1c17dd046f035a77db9775b9884d2d76.jpeg)
数字图像的基本操作
形态学操作
◦ 图像中几何形状的处理,是数学中集合操作在视觉处理中的推广应用。
◦ 基本操作有腐蚀(erosion),膨胀(dilation),开操作(opening),闭操作(closing)
◦ 主要介绍二值形态学处理,另外还有灰度形态学处理
腐蚀
腐蚀就是求局部最小值的操作,核B与A卷积,即计 算核B覆盖的区域的像素点的最小值,并把这个最 小值赋值给参考点指定的像素
腐蚀操作最基本的应用为去除一个二值化图像中相关性不高的细节(从尺寸的角度),如下图所示
膨胀
膨胀就是求局部最大值的操作,核B与A卷积,即计算核B覆盖的区域的像素点的最大值,并把这个最大值赋值给参考点指定的像素
膨胀操作的一个最基本应为为填补空隙
开操作
功能在于截断狭窄链接,去除细小突出部分
闭操作
功能在于融合细小分割,或者长距离细隔断
击中击不中变换(hit-miss)
简单来说击中-击不中运算常用于二值图像,它用于基于结构元素的配置,从图像中寻找具有某种像素排列特征的目标,如单个像素、颗粒中交叉或纵向的特征、直角边缘或其他用户自定义的特征等。计算时,只有当结构元素与其覆盖的图像区域完全相同时,中心像素的值才会被置为1,否则为0。
寻找邻域匹配第一个结构元素B1,同时不匹配第二个结构元素B2的像素。用数学公式表达上述操作如下
数字滤波
噪声
噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块。一般,噪声信号与要研究的对象不相关,它以无用的信息形式出现,扰乱图像的可观测信息。通俗的说就是噪声让图像不清楚。
噪声来源
(1)图像获取过程中
两种常用类型的图像传感器CCD和CMOS采集图像过程中,由于受传感器材料属性、工作环境、电子元器件和电路结构等影响,会引入各种噪声,如电阻引起的热噪声、场效应管的沟道热噪声、光子噪声、暗电流噪声、光响应非均匀性噪声。
(2)图像信号传输过程中
由于传输介质和记录设备等的不完善,数字图像在其传输记录过程中往往会受到多种噪声的污染。另外,在图像处理的某些环节当输入的对象并不如预想时也会在结果图像中引入噪声。
噪声种类
图像常见噪声基本上有以下四种,高斯噪声,泊松噪声,乘性噪声,椒盐噪声。
原图
![48cd850c993e7dae8039f87eb5b544c6.png](https://i-blog.csdnimg.cn/blog_migrate/014e87bd262d8f2adaf1c5a39e8a497c.jpeg)
高斯噪声
高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。高斯白噪声的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。
产生原因:
1)图像传感器在拍摄时市场不够明亮、亮度不够均匀;
2)电路各元器件自身噪声和相互影响;
3)图像传感器长期工作,温度过高。
泊松噪声
泊松噪声,就是符合泊松分布的噪声模型,泊松分布适合于描述单位时间内随机事件发生的次数的概率分布。如某一服务设施在一定时间内受到的服务请求的次数,电话交换机接到呼叫的次数、汽车站台的候客人数、机器出现的故障数、自然灾害发生的次数、DNA序列的变异数、放射性原子核的衰变数等等
![26e3739e34e1eb264734ef60598fb0f4.png](https://i-blog.csdnimg.cn/blog_migrate/2da069e2ca14b604ff3af619c853a25c.jpeg)
乘性噪声
乘性噪声一般由信道不理想引起,它们与信号的关系是相乘,信号在它在,信号不在他也就不在。
![505d002116be38d8a83344e6cc7fce4e.png](https://i-blog.csdnimg.cn/blog_migrate/62851a248b34426dac27457e875ea59b.jpeg)
椒盐噪声
椒盐噪声,椒盐噪声又称脉冲噪声,它随机改变一些像素值,是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。
![59ecf78e27c48472396fe11887dd308e.png](https://i-blog.csdnimg.cn/blog_migrate/5730fb2dcefd6c8a8084851888c0ba65.jpeg)
数字滤波
空域滤波
空域滤波:将邻域内的图像象素值同对应的与邻域有相 同维数的掩膜相作用的过程
均值滤波
![d947b077fc4922107a3580eb7b41a29c.png](https://i-blog.csdnimg.cn/blog_migrate/d4aa627a6d7cda9194673b188d822400.jpeg)
TIPS:
• 掩膜尺寸增大,使得图像更加平滑,但丢失的细节信息也更多,在实际应用中需要根据图像的信噪比,设计合适的掩膜
• 平滑滤波适用于一般高斯噪声,对于椒盐噪声(脉冲噪声),其降噪效果不理想
提取感兴趣的目标
![d633982b7a12f9395d7fbc56c1122dfa.png](https://i-blog.csdnimg.cn/blog_migrate/00ff76af63add796402b7836a284f454.jpeg)
中值滤波
用模板区域内像素的中间值,作为结果值(对 孤立噪声点有用)
• 强迫突出的亮点或暗点更象它周围的值,以消除孤立的亮 点或暗点
• 在去除噪音的同时,可以比较好地保留边的锐度和图像的细节(优
于均值滤波器)
• 能够有效去除脉冲噪声
均值 v.s 中值
![58801941aedbf33e2a5181da509b2c31.png](https://i-blog.csdnimg.cn/blog_migrate/a3f017b93b7a10032fa0f8a20ce522ba.jpeg)
![40a48fed8fad6a2730363db9d2c8fe19.png](https://i-blog.csdnimg.cn/blog_migrate/db2230b1367f5da41e5a766e7d30ffde.jpeg)
![b4c9e9bd4c29ca2b04faa47f06f04fbc.png](https://i-blog.csdnimg.cn/blog_migrate/5edfa8f2ac63cf941de058d351ed0183.jpeg)
图像锐化
突出边缘和轮廓、线性目标或某些亮度变化率大 的部分,可以采用锐化的方法。锐化使图像上边缘与线性目标的反差提高,因此也称为边缘增强
一阶梯度法
图像锐化法最常用的是梯度法。 对于图像f(x,y),在(x,y)处的梯度定义为
对于数字图像,则用离散的式子表示:
Prewitt梯度算子——3x3的梯度模板
Sobel梯度算子——3x3的梯度模板
拉普拉斯算子(二阶梯度法)
• 二阶导数对线的响应比对阶跃的响应强,对点的响应比对线强
![908f4273c1862701d5f97b874f1ee490.png](https://i-blog.csdnimg.cn/blog_migrate/08c7ded275a9925b36a84fe366adad09.jpeg)
对应模板:
![95a90fa2ea841f4c97d6a9f302c3c94c.png](https://i-blog.csdnimg.cn/blog_migrate/878fc17661e53b5333ca0efbf4197952.jpeg)
• 基于Laplacian算子图像锐化:将原图像与Laplacian图像相加
---
频域滤波
• 把图像信息从空间域变换到频率域,在频域内对图像 进行分析处理,然后变换回空间域得到滤波后图像
• 空域的卷积等于频域的相乘频率滤波具有如下特点:
1、 有利于提取图像的某些特征,如高频的细节信息,低频轮廓信息等
2、 频率域有快速算法(快速傅里叶变换等),可大大减少运算量,提高处理效率频域滤波的流程:
![e8cdc7c8a7b96d383ef582902c8767f1.png](https://i-blog.csdnimg.cn/blog_migrate/f997c42a1d09229fc65ea941bea6fa79.jpeg)
低通滤波
一个二维的理想低通滤波器(ILPF)
其中: 为截止频率 D(u,v) 为距离函数Butterworth低通滤波器
一个截止频率为(与原点距离)的n阶Butterworth低 通滤波器(BLPF)的变换函数如下:
![22216b826216878a83bec6e8bec7ad3b.png](https://i-blog.csdnimg.cn/blog_migrate/08eb062eb0f3266fe4b6f65c4797ef27.jpeg)
理想低通滤波器 vs Butterworth低通滤波器
高通滤波
理想高通滤波器
Butterworth高通滤波器
一个截止频率在与原点距离为D0的n阶Butterworth高通滤波器 (BHPF)的变换函数如下:
特征提取
二值化操作
定义:就是将图像上的像素点的灰度值设置为0或 255,即将整个图像呈现出明显的只有黑和白的视 觉效果。
意义:存储方便,计算快速;能得到清晰的边缘轮 廓线,更好地为边缘提取、图像分割、目标识别等 后续处理服务。
本质:是个聚类问题样例
二值化的基本过程如下(阈值法):
• 预处理:对原始图像进行预处理,降低或去除噪声;
• 阈值选取:用算法确定最佳阈值T;
• 灰度变换:凡是像素的灰度值大于这个阈值的设成255,小于这个阈值的设成0。这样处理后的图像就只有黑白两色,从而将灰度范围划分成目标和背景两类,实现了图像的二值化。
$g(x,y)=left{begin{matrix} 255(white) quad f(x,y)geqslant T 0(black) quad f(x,y)为什么预处理?
◦ 基于阈值的二值化方法完全依赖于图像灰度,因此对噪声 敏感,不经过降噪处理,二值化图像仍存在大量噪点,不利于后续视觉任务
怎么预处理?
◦ 在尽量不损失图像边缘的条件,对噪声进行平滑处理
◦ 如:椒盐噪声采用中值滤波等,高斯噪声采用高斯低通滤波器等方法
全局阈值
双峰法
现实场景中,背景与目标的灰度往往呈现为不同均值下的高斯分布。
因此在图像的直方图各自形成一个波峰,即区域与波峰一一对应,每两个波 峰之间形成一个波谷。
选择双峰之间的波谷所代表的灰度值T作为阈值,即可实现两个区域的分割。
P参数法
算法思想:如果已知目标区域面积,则选取阈值使得二值化后目标区域面积最接近已知的目标区域
适用范围:当不同区域(即目标)之间的灰度分布有一定的重叠时,双峰 法的效果就很差。如果预先知道每个目标占整个图像的比例P,则可以采用 P参数法进行分割。1) 计算图像的直方图分布P(t).其中t=0,1,2,…,255,表示图像的灰度值;
2) 从最低的灰度值开始,计算图像的累积分布直方图。
3)
缺点:需要预先知道目标区域的P值,因此称为P参数法。
大津法
又称为Otsu法或最大类间方差法
基本思想: 是用某一假定的灰度值t将图像的灰度分成两组,当两组的类间方差最大时,此灰度值t就是图像二值化的最佳阈值。
图像的总平均灰度为:
图像的方差:
最佳阈值为: = (()) 使得间类方差最大时所对应的t值算法理解:阈值T将整幅图像分成前景和背景两部分,当两类的类间方差最大时, 此时前景和背景的差别最大,二值化效果最好。因为方差是灰度分布均匀性的一种度量,方差值越大,说明构成图像的两部分差别越大,当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小,因此使类间方差最大的分割阈值意味着错分概率最小。
适用范围:
•对于图像灰度直方图较为平坦的情况具有较好的适应性
•对噪音和目标大小敏感,它仅对类间方差为单峰的图像产生 较好的分割效果
![8ee1e0a979b51bf18b2cc052ccbec2e8.png](https://i-blog.csdnimg.cn/blog_migrate/afe799a4fea08e1e1355cc363640b762.jpeg)
迭代法
基本思想:
◦ 随机初始一个阈值T,对图像进行二值化处理,分别计算 目标和背景区域的灰度均值,更新当前阈值为目标和背景 区域灰度均值的中值。重复至均值收敛
算法理解:
◦ 是一种典型的EM(expectation maximization)或者KMeans方法,通过不断的迭代去寻找最佳分割阈值
![941a41d5eaf19ff978cd3cb2c619b182.png](https://i-blog.csdnimg.cn/blog_migrate/f7ad99ddf260e73cbd2a6b6114e6fb84.jpeg)
全局阈值存在的问题
全局阈值的局限性: 当图像亮度分布不均匀时,全局阈值方法往往会不能区分目标和背景,因此得到较差的二值化效果
解决方案-局部阈值方法: 局部自适应阈值是根据像素的邻域块的像素值分布来确定该像素位置上的 二值化阈值。局部阈值的方法动态的去确定每个像素点的二值化阈值,对亮度分布不均匀的图像具有更好的二值化效果。
![b0dc483b8e6b5abb2857bd23e25de915.png](https://i-blog.csdnimg.cn/blog_migrate/09db928dcabacc4310fbd67846bdebcb.jpeg)
![fb7cb0b312f1c07cb253d59d70100dd0.png](https://i-blog.csdnimg.cn/blog_migrate/e2f47616bfb31af8610b3d15ee7da092.jpeg)
![08ae970ba0e43b650c8bda6f2e17b782.png](https://i-blog.csdnimg.cn/blog_migrate/d158ceecc9898d013fb3c1f594fe2878.jpeg)
局部阈值
局部阈值的基本思想: 二值化阈值由其周围邻域像素的分布来决定的。亮度较高的图像区域的二值化阈 值通常会较高,而亮度较低的图像区域的二值化阈值则会相适应地变小。不同亮度、对比度、纹理的局部图像区域将会拥有相对应的局部二值化阈。
基于Wall算法的自适应阈值
基于Wall算法的自适应阈值基本思想
首先,将图像分成较小的块,然后分别计算每块的直方图。根据每个直方图的峰值,然后为每个块计算其阈值。然后,每个像素点的阈值根据相邻的块的阈值进行插值获得。
![d91e7ef919688e35659bd71a034453ac.png](https://i-blog.csdnimg.cn/blog_migrate/b4bca83a50dbc33908f43868ab07ca31.jpeg)
适用性:
- 计算量大,速度较慢
- 对于有些图像,局部的直方图可能会被大量的(小块)黑色或白色点欺骗,导致阈值在整幅图像中不 是平滑的变化,结果可能非常糟糕
Bernsen法
基本思想:考虑以像素点为中心的窗口,计算图像中每个像素点的阈值,在图像中 对各个像素点进行二值化,并扩展存储灰度图像值的矩阵。
![4b7bc0fd03dd7593e0e272a8f3c5657f.png](https://i-blog.csdnimg.cn/blog_migrate/96458fce0a6d15a74150edc65da2ff41.jpeg)
![8db6b1c83e12232fa42d394e64805b1c.png](https://i-blog.csdnimg.cn/blog_migrate/abbaccf8743bc7534482148ef40b693e.jpeg)
快速自适应阈值
假设Pn为图像中位于点n处的像素。此刻我们假设图像是由所有行按顺序连接起来的一个单行。这导致了在每行开始的时候会产生一些异常,但这个异常要比每行都从零开始要小。
假设f s (n)是点n处最后 s个像素的总和:
最后的图像T(n)是1(黑色)或0(白色)则依赖于其是否 比其前s个像素的平均值的百分之t的暗。
![e276fba8d6305ebc8b7d8092ca724ba9.png](https://i-blog.csdnimg.cn/blog_migrate/5b270029633475d3244a7c345e2c5fc6.jpeg)
![8579c5f7f176b36e3a5f0ed7faf3879f.png](https://i-blog.csdnimg.cn/blog_migrate/6c4a890e7aec2f95f85b67af50497025.jpeg)
特征提取
角点检测
什么是角点?
直观理解是让我们感兴趣的点(角落,明 暗变化大的位置等),而且它应该是对后续处理有效的点。
为什么需要角点?
![2bdedd7a8fa4aff42d0ff33c698424e1.png](https://i-blog.csdnimg.cn/blog_migrate/31810a011d7f090de143a578936421be.jpeg)
![9769c6a562eb7662a8ad66571271926c.png](https://i-blog.csdnimg.cn/blog_migrate/2caf22d58960caf223caa6b802ac1007.jpeg)
◦ 好的特征应该具有以下几个特点:
1)重复性:不同图像相同的区域应该能被重复检测到,而且不受到旋 转、模糊、光照等因素的影响;
2)可区分性:不同的检测子可以利用其描述子进行区分;
3)数量适宜:太多计算量大,太少不足以描述目标;
4)高定位(尺度和位置):类似上述重复性;
5)有效性:检测速度越快越好。
Moravec(莫拉韦克)角点检测算法
算法通过检测当前当前像素点所在区域与其邻接区域的相 似性,判断当前点是否为角点。
1.计算角点响应值 = min(,,45,135),即窗口内在水平、垂直、对角以及反对角 方向的方差
2.设定阈值,筛选出R>threshold的点为候选角点
3.将候选点中不是窗口内局部最大值的点剔除存在的问题:
1)不具备旋转不变性:moravec算法只计算八个方向的灰度值差的平方和,所 以有些角点可能旋转之后会消失。
2)对边缘点响应强烈:窗口在各个方向的移动,窗口内的灰度值都会产生较大 的变化。而这里的“各个方向”就只有8个方向。所以如果边缘在这8个方向以外,就会被认为是角点。
![eaeb870872289352d4348f36c5c072f3.png](https://i-blog.csdnimg.cn/blog_migrate/40415de07859ec14fa2317416a67e66e.jpeg)
Harris 角点检测
使用梯度信息,所以具备光照不变性;
使用特征值,所以具备旋转不变性;
不具备尺度不变性 。
步骤
1.将原图像I使用 W(x,y) 进行卷积,并计算图像梯度 Ix与Iy(Sobel算子);窗口一般选用高斯窗口
2.计算每一个图像点的自相关矩阵 H
3.计算角点响应
4.选择R大于阈值且为局部极大值的点作为角点
![b76eb64be7a4b5f29a6a10b4967d5f29.png](https://i-blog.csdnimg.cn/blog_migrate/88935bccde65a020a426a1592d2f8e24.jpeg)
更多的角点检测方法
a、SUSAN是一种基于灰度的特征点获取方法, 适 用于图像中边缘和角点的检测。
b、sift点特征:1. 构建尺度空间,检测具有尺度不变性的极值点,获得尺 度不变性; 2. 特征点过滤并进行精确定位; 3. 为特征点分配方向值; 4. 生成特征描述子
直线检测
意义:
◦ 轮廓提取-一般物体平面图像的轮廓可近似为直线及弧 的组合,因此,对物体轮廓的检测与识别可以转化为对 这些基元的检测与提取。典型应用是:道路,铁轨检测,工件的边缘等
◦ 运动分析-运动图像分析和估计领域也可以采用直线对 应法实现刚体旋转量和位移量的测量。
Hough直线检测基本原理
核心思想:
⚫ Hough变换是一种使用表决(voting based)原理的参数 估计技术。
⚫ 原理是利用图像空间和Hough参数空间的点-线对偶性, 把图像空间中的检测问题转换到参数空间。
⚫ 通过在参数空间里进行简单的累加统计,然后在Hough参 数空间寻找累加器峰值的方法检测直线。
Hough变换的性质
① 空间域的一个点对应于变换域的一条曲线,即变换域中满足 = cos + sin的点。
② 变换域的一个点对应于空间域的一条直线。即空间域内的一条直线,满足到原点垂直距离为,夹角为。
③ 空间域一条直线上的n个点对应变换域中具有一个公共点的n条曲线
如果空间域的n个点在一条直线上,那末变换域 的n条曲线必相交于同一点;空间域同一条直线 上的点越多,变换域交点的重数(相交曲线的 条数)就越大。这是我们用Hough变换检测直线 特征的基础。
随机霍夫变换算法步骤:
(1)对图像预处理, 提取边缘特征
(2)输入图片具有M个边缘点,从中随机挑选两个点,两点所 在直线可以通过解方程组得到:
因此在parameter space 得到点(a,b),不同于传统 HT采用2D accumulators来表示parameter space的 方法,RHT使用链表记录信息
(3)在该链表中搜索元素,如果恰好可以匹配(a,b),则该元素计数增 加,如果不存在这样的元素,则该链表增加一个计数为1 的新元素。
任意形状检测(广义霍夫变换)
当检测的几何形状为直线,椭圆,圆时,我们通过霍夫曼变换终究可以将他们在一个有限维的参数空间中表示出来。但是当所要检测的形状为一些不规则图形,比如字母,或者是一只水杯,我们就很难用一个数学解析式去描述出这个形状。这时候霍夫曼变换就很难解决这个问题。但是通过广义霍夫曼变换,这类的问题却得到了很好的解决。
广义霍夫变换
假定形状的大小(scale)和方向(orientation)已知,我们 只需要找出目标的位置(x, y)
![8aa2be02e744f20f4566b7082f046e44.png](https://i-blog.csdnimg.cn/blog_migrate/ab4d421dad5efdf56ab3e115688a7aa2.jpeg)
在feature内部随机选取一个点作为参考点 建立R-table
2.1 R-table以边缘方向为索引
2.2 R-table记录边缘上每点到参考点的距离和角度
2.3 R-table完全描述了此形状(模板template)对图像中的每个有效像素,找出其边缘方向,将Rtable中对应于的所有,也即在累加器(accumulator array)(的size足够大)中的 + 位置加1找出局部最大点记得到目标检测的位置
![4c33e09a6788dd9ba4c9df0f272da692.png](https://i-blog.csdnimg.cn/blog_migrate/a9c8609b2850a5ba127814bbab08b650.jpeg)
任意形状检测
步骤:
1、将模板和待检测图像转化为灰度图
2、利用sobel或者candy算子对模板和待检测图像进行边缘提取
3、对模板计算相对应的R-table
4、建立一个等于待检测图像size的累加器表(Accumulator table)
5、对于待检测图像上的每个边缘点,计算对应的梯度方向。然后在R-table中检索相应的梯度值。
6、对于该梯度值下所有的参数对,计算出相应的参考点,并对于累加器表中对应的累加器表的数值加一。这些都是如果该点属于要检测图像上的一点,可能的参考点位置。
7、对于累加器表中的点找局部最大值,如果大于阈值T,就认为该点作为中心,检测到一个待检测图像。
![d240b8084692fb29f4b7f9573d8636ee.png](https://i-blog.csdnimg.cn/blog_migrate/e144238b64a180b8ddfbfa9991affd29.jpeg)
GHT中加入旋转和缩放后的检测过程:
1、将模板和待检测图像转化为灰度图
2、利用sobel或者candy算子对模板和待检测图像进行边缘提取
3、对模板计算相对应的R-table
4、建立一个四维的累加器表(Accumulator table)
5、对于待检测图像上的每个边缘点,计算对应的梯度方向。然后在R-table中检索相应的梯度值。
6、设定一个检测中旋转和缩放的范围。
7、对于该梯度值下所有的参数对,计算出相应的伪参考点坐标。
8、假定我们要检测的对象都是经历过变换的,对于该坐标,对所有可能的旋转角度和缩放尺度,利用上页公式计算实际参考点位置。
9、对于累加器表中对应的累加器表的数值加一。这些都是如果该点属于要检测图像上的一点,可能的参考点位置。
10、对于累加器表中的点找局部最大值,如果大于阈值T,就认为该点作为中心,检测到一个待检测图像。
![3f708a3c152c952d5babd75cddfa793e.png](https://i-blog.csdnimg.cn/blog_migrate/83e85b6c3bb5d8bd377ea84566dcdbaf.jpeg)
![6be8a8e4d67035a591bf7845468e7525.png](https://i-blog.csdnimg.cn/blog_migrate/a14977e045576e4d2b6fb5fa01320a47.jpeg)