2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 计算机视觉基础--边缘检测

计算机视觉基础--边缘检测

时间:2021-06-23 18:29:01

相关推荐

计算机视觉基础--边缘检测

1.边缘提取

复习-梯度

梯度:梯度本意是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)

边缘提取:什么是边缘?

图像的边缘指图像局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,即从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。

边缘有正负之分,就像导数有正值也有负值一样:由暗到亮为正,由亮到暗为负

求边缘幅度的算法:soble、Roberts、prewitt、Laplacian、Canny算子

边缘检测主要是图像的灰度变化的度量、检测和定位

高频信号&低频信号

图像中的低频信号和高频信号也叫做低频分量和高频分量

简单来说,图像中的高频分量,指的是图像强度(亮度/灰度)变化剧烈的地方,也就是边缘(轮廓)

图像中的低频信号,指的是图像强度(亮度/灰度)变换平缓的地方,也就是大片色块的地方

人眼对图像中的高频信号更为敏感

边缘检测的原理和步骤

1)滤波:边缘检测的算法主要是基于图像强度的一阶和二节导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能。常见的滤波方法主要有高斯滤波

2)增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将图像灰度点邻域强度值有显著变化的点凸显出来,在具体编程实现时,可以通过计算梯度幅值来确定

3)检测:经过增强的图像,往往邻域中的很多点的梯度值比较大,而在特征的应用中,这些点并不是我们要找的点,所以应该采用某种方法来对这些点进行取舍。实际工程中,常用的方法是通过阈值化方法来检测。

关于边缘检测的基础来自于一个事实,即在边缘部分,像素值出现“跳跃”或者较大的变化。如果在次边缘部分求取一阶导数,就会看到极值的出现。

而在一阶导数为极值的地方,二阶导数为0,基于这个原理,就可以进行边缘检测

图像锐化

图像锐化(image sharpening)是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰

图像锐化是为了突出图像上的物的边缘、轮廓,或者某些线性目标要素的特征。这种滤波方法提高了地物边缘与周围像元之间的反差,因此也被称为边缘增强。

常使用拉普拉斯变换

图像平滑

图像平滑是指用于突出图像的宽大区域、低频成分、主干部分或已知图像噪声和干扰高频成分的图像处理方法,目的是使图像亮度平缓渐变,减少突变梯度,改善图像质量。

Soble算子是典型的基于一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪声具有平滑作用,能很好的消除噪声的影响。

Soble算子对于像素的位置的影响做了加权,因此与Prewitt算子相比效果更好

Soble算子包含两组3x3的矩阵,分别为横向和纵向模板,将之与图像做平面卷积,即可分别得出横向及纵向的亮度差分近似值。实际使用中,常用如下两个模板来检测图像边缘:

优点:简单,计算效率高

缺点是Soble算子并没有将图像的主题与背景严格地区分开来,换言之就是Soble算子并没有基于图像灰度进行处理,由于Soble算子并没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。

Prewitt算子

Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用。其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成,这两个方向模板一个检测水平边缘,一个检测垂直边缘。

原理同Soble算子

检测边缘可以通过定位梯度值大于邻域的像素的方法找到(或者推广到大于一个阈值),于是推论二阶导数可以用来检测边缘。因为图像是“2D”,需要在两个方向上求导。

2.Canny算法

Canny是目前最优秀的边缘检测算子,其目标是找到一个最优的边缘。

最优边缘的定义:

1)好的检测:算法能够尽可能的标出图像中的实际边缘

2)好的定位:标识出的边缘要与实际图像中的边缘尽可能接近

3)最小响应:图像中的边缘只能标记一次

Canny边缘检测算法步骤

a)对图像进行灰度化

b)对图像进行高斯滤波:根据待滤波的像素点及其邻域点的灰度值按照一定的参数规则进行加权平均。这样可以有效滤去理想图像中叠加的高频噪声。

c) 检测图像中的水平、垂直和对角边缘(如Prewitt、Soble算子等)

d) 对梯度幅值进行非极大值抑制:通俗意义上是指寻找像素点局部最大值,将非极大值点所对应的灰度值置为0,这样可以剔除掉一大部分非边缘点。

e)用双阈值算法检测和连接边缘

高斯平滑

高斯平滑水平和垂直方向呈现高斯分布,更突出了中心点在像素平滑后的权重,相比于均值滤波而言,有着更好的平滑效果

重要的是需要理解,高斯卷积核大小的选择将影响Canny检测器的性能:

尺寸越大,检测器对噪声的敏感度越低,但是边缘检测的定位误差也将略有增加。一般5x5是一个比较不错的trade off。

非极大值抑制

简称NMS算法,思想是搜索局部最大值,抑制非极大值

NMS算法在不同应用中的具体实现不太一样,但是思想是一样的

1)将当前像素的梯度强度与沿着正负梯度方向上的两个像素进行比较

2)如果当前像素的梯度强度与另外两个像素相比最大,则该像素点保留为边缘点,否则该像素点被抑制(灰度值置为0)

用双阈值算法检测(滞后阈值)

完成非极大值抑制后,会得到一个 新的图像,非边缘的点灰度值均为0,可能为边缘的局部灰度极大值点可设置其灰度为128(或其他)。

这样一个检测结果还是包含了很多由噪声及其它原因造成的假边缘。因此还需要进一步的处理。

双阈值检测;

如果边缘像素的梯度值高于高阈值,则将其标记为强边缘像素;如果边缘像素的梯度值小于高阈值并且大于低阈值,则将其标记为弱边缘像素;如果边缘像素的梯度值小于低阈值,则会被抑制

大于高阈值为强边缘,小于低阈值不是边缘。介于中间是弱边缘

阈值的选择取决于给定输入图像的内容

抑制孤立低阈值点

代码实现:

调用接口

3.相机模型

相机与图像

坐标系:

针孔相机模型存在四个坐标系:世界坐标系、摄像机坐标系、图像物理坐标系和图像像素坐标系。

假设:

世界坐标系:是客观三维世界的绝对坐标系,也称客观坐标系。就是物体在真实世界中的坐标。世界坐标系是随着物体的大小和位置变化的,单位就是长度单位。

相机坐标系:以相机的光心为坐标系的原点,以平行于图像的x和y方向为x轴和y轴,z轴和光轴平行,x,y,z相互垂直,单位是长度单位.

图像物理坐标系:以主光轴和图像平面交点为坐标原点,x’和y’方向如图所示,单位是长度单位

**图像像素坐标系:**以图像的顶点为坐标原点,u和v方向平行于x’和y’方向,单位以像素计

)

相机成像

世界坐标系到摄像机坐标系

欧式变换

齐次坐标

摄像机坐标系到图像物理坐标系

图像物理坐标系到图像像素坐标系

摄像机坐标系到图像像素坐标系

世界坐标系到图像像素坐标系

相机成像原理

4.透视变化

镜头畸变

透镜由于制造精度以及组装工艺的偏差会引入畸变,导致原始图像的失真镜头的畸变分为径向畸变和切向畸变(仅作了解)

畸变矫正

径向畸变和切向畸变模型中一共有5个畸变参数,在Opencv中特咱们被片列成一个5*1的矩阵,一次包含k1,k2,

透视变化

透视变换是将图片投影到一个新的视平面(Viewing Plane),也称投影映射(Projective Mapping)。

常说的放射变换是透视变换的一个特例

透视变换的目的就是把显示中为直线的物体,在图片上可能呈现出斜线,通过透视变换转换成直线的变换。

仿射变换(Affine Transformation 或Afffine Map),又称为仿射映射,是指在几何中,图像进行从一个向量空间进行一次线性变换和一次平移,变换为到另一个向量空间的过程。

通用变换公式

下式中的X,Y是原始图像坐标(上式的x,y),对应得到变换后的图像坐标(x‘,y’,z’)。其中z‘=1

代码

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。