一种基于FPGA的CANNY算法阈值获取方法及装置与流程

文档序号:13805707阅读:651来源:国知局
一种基于FPGA的CANNY算法阈值获取方法及装置与流程

本发明涉及图像处理技术领域,尤其涉及一种基于fpga的canny算法阈值获取方法及装置。



背景技术:

在图像处理技术中,图像的边缘是指图像局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。图像的边缘部分集中了图像的大部分信息,图像边缘的确定与提取对于整个图像场景的识别与理解是非常重要的,同时也是图像分割所依赖的重要特征,边缘检测主要是图像的灰度变化的度量、检测和定位。

canny边缘检测算法是1986年有johnf.canny开发出来一种基于图像梯度计算的边缘检测算法,它是边缘检测的一种标准算法,其广泛应用于图像处理,图象分割、模式识别、机器视觉等中都有重要作用。随着社会的发展,特别是机器视觉的应用需要,图像处理得技术得到了快速的发展,canny算法得到了广泛的研究发展和应用。在canny算法中,图像梯度的阈值抑制是关键的一步,而在阈值抑制中,阈值的获取是重要的一步。

fpga(field-programmablegatearray,现场可编程门阵列)是在pal、gal、cpld等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(asic)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。fpga已广泛应用于图像处理领域。但是在关键的阈值计算上,由于需要对整个图像数据进行处理,存储和运算量巨大,fpga难以适应,因此,在现有技术中,canny算法阈值的获取都是由pc或amr处理器运算取得,然后传递给fpga。这种方法速度较慢,只能适应静态的图像,无法满足视频的处理要求。

因此,现有技术有待进一步改进。



技术实现要素:

本发明提供一种基于fpga的canny算法阈值获取方法及装置,旨在解决现有技术中的缺陷,实现阈值的快速获取。

为达到上述目的,本发明所采取的技术方案为:

本发明一方面提供一种基于fpga的canny算法阈值获取方法,包括:

计算待处理视频帧的梯度最大值和平均值;

确定分割步长及分割总数,得到梯度区间;

统计所有梯度区间的像素数;

比较相邻梯度区间像素数相差幅度是否超过预设幅度,是则将相邻梯度区间中较小者的像素数标记为疑似阈值像素数;

在疑似阈值像素数中获得跳变最大的像素数;

根据所述跳变最大的像素数计算系统阈值;

利用所述最终阈值进行边缘检测。

具体地,所述相邻梯度区间像素数相差幅度=(相邻梯度区间中梯度较大者的像素数-相邻梯度区间中梯度较小者的像素数)/相邻梯度区间中梯度较小者的像素数。

具体地,所述分割总数不少于5。

具体地,所述系统阈值等于跳变最大的像素数对应的梯度区间两个端点值的算术平均值。

本发明另一方面提供一种基于fpga的canny算法阈值获取装置,包括梯度输入模块、梯度处理模块、像素处理模块、系统阈值计算模块;

所述梯度输入模块用于输入系统计算出的视频梯度信息;

所述梯度处理模块,用于对输入的视频梯度信息进行处理,生成梯度区间;

所述像素处理模块,用于对各梯度区间内的像素进行处理,获得跳变最大的像素数;

所述系统阈值计算模块,用于根据像素处理模块得到的跳变最大的像素数确定系统阈值。

具体地,所述梯度处理模块包括:用于计算梯度平均值计算的梯度平均值计算单元、用于获得梯度最大值的梯度最大值计算单元、用于设置梯度区间分割步长的步长设置单元、用于生成梯度区间的梯度区间生成单元。

具体地,所述梯度平均值计算单元由依次连接的累加器和除法器组成,所述梯度最大值计算单元由比较器组成。

具体地,所述像素处理模块包括:用于统计各梯度区间内像素总数的像素数统计单元、用于比较各像素数的像素数比较单元、用于标记疑似阈值像素数以及跳变最大的像素数的像素数标记单元。

本发明的有益效果在于:本发明通过计算视频帧的梯度最大值和平均值,并分割为若干个梯度区间,统计每个梯度区间内的像素数,从相邻梯度区间像素数相差幅度超过预设幅度的像素数中找出跳变最大的像素数,从而计算出系统阈值,实现了canny算法阈值的快速获取,兼顾了速度和精度,能适用于实时视频图像处理。

附图说明

图1是本发明的基于fpga的canny算法阈值获取方法的流程示意图;

图2-a是本发明使用的未处理前的灰度图片;

图2-b是利用本发明获得的系统阈值做边缘检测的结果图;

图3是本发明的基于fpga的canny算法阈值获取装置的结构示意图。

具体实施方式

下面结合附图具体阐明本发明的实施方式,附图仅供参考和说明使用,不构成对本发明专利保护范围的限制。

实施例1:

如图1所示,本实施例提供一种基于fpga的canny算法阈值获取方法,包括:

前置步骤:对原始视频帧进行灰度化,对灰度化后的视频帧进行高斯滤波,计算灰度化后的视频帧的梯度幅值。

这些步骤是现有技术,在此不再赘述。

计算灰度化后的视频帧的梯度幅值步骤中的梯度幅值作为本方法的梯度输入。

步骤1、计算待处理视频帧的梯度最大值和平均值。

在本实施例中,通过比较器找出梯度最大值,通过累加器和除法器计算梯度平均值。

例如,在本实施例中,梯度最大值gmax=169,梯度平均值gav=44。

步骤2、确定分割步长l及分割总数n,得到梯度区间。

从梯度幅值平均值gav到梯度幅值最大值gmax,划分为若干个梯度区间,梯度区间间隔即是梯度区间分割步长l,梯度区间分割步长l越短,梯度区间分得越细,精度越准确,但太小也会由于噪点、干扰的原因导致数据不准确。一般,梯度区间分割总数n不少于5。如果最后一个梯度区间间隔小于设定的步长l,则该梯度区间也作为一个梯度区间处理。

例如,在本实施例中,确定梯度区间分割步长l=15,梯度区间分割总数n=8,依次是44~59、60~75、76~91、92~107、108~123、124~139、140~155、155~169。

步骤3、统计所有梯度区间的像素数ck(k=1,2,3…n)。

图像边缘是因为图像中灰度强度的不连续性而产出的,而这种不连续性是由于目标在场景中表现出来的不同深度、不同反射特性和不同亮度所导致的。因此,边缘就与图像的梯度有关,通过分析统计像素在不同梯度区间的分布,可以判断出不同的边沿。

在本实施例中,44~59梯度区间的像素数c1=3435,60~75梯度区间的像素数c2=2347,76~91梯度区间的像素数c3=3097,92~107梯度区间的像素数c4=1411,108~123梯度区间的像素数c5=2241,124~139梯度区间的像素数c6=2468,140~155梯度区间的像素数c7=2939,176~169梯度区间的像素数c8=1153。

步骤4、比较相邻梯度区间像素数ck和ck+1相差幅度是否超过预设幅度,是则将相邻梯度区间中梯度较小者的像素数ck标记为疑似阈值像素数。

根据边沿的特点,如果相邻梯度区间像素数目ck和ck+1的相差幅度超过预设幅度(例如50%),则认为这是一次跳变,即ck对应的梯度区间对应的梯度为疑似阈值。相差幅度设置得越小,即梯度变化越小,找出的可能边沿越多,但假边沿也越多。相差幅度可以在实际应用中根据具体实施效果进行选择。

在本实施例中,所述相邻梯度区间像素数相差幅度=(ck+1-ck)/ck。

例如,在本实施例中,各相邻梯度区间像素数的相差幅度为:

c1与c2的相差幅度为32%;c2与c3的相差幅度为32%;c3与c4的相差幅度为54%;c4与c5的相差幅度为59%;c5与c6的相差幅度为10%;c6与c7的相差幅度为19%;c7与c8的相差幅度为60%。

其中,c3与c4、c4与c5、c7与c8的相差幅度达到50%以上,因此,可以认为c3、c4、c7对应的梯度为疑似阈值。

步骤5、在疑似阈值像素数ck中获得跳变最大的像素数cm。

例如,在本实施例中,c7是跳变最大的像素数。

步骤6、根据所述跳变最大的像素数cm计算系统阈值g。

在本实施例中,系统阈值g等于跳变最大的像素数cm对应的梯度区间两个端点值的算术平均值gm。

例如,gm=(140+155)/2=147。

步骤7、利用所述最终阈值g进行边缘检测。

边沿检测是现有技术,在此不再赘述。

图2-a、图2-b为采用本发明所述方法取得阈值进而作边沿检测的结果。从上图可以看出,用本方法获得的阈值对图像边沿检测的效果很好的反映了原图的边界。

实施例2:

如图3所示,本实施例提供一种基于fpga的canny算法阈值获取装置,包括梯度输入模块、梯度处理模块、像素处理模块、系统阈值计算模块;

所述梯度输入模块用于输入系统计算出的视频梯度信息;

所述梯度处理模块,用于对输入的视频梯度信息进行处理,生成梯度区间;

所述像素处理模块,用于对各梯度区间内的像素进行处理,获得跳变最大的像素数;

所述系统阈值计算模块,用于根据像素处理模块得到的跳变最大的像素数确定系统阈值。

在本实施例中,所述梯度处理模块包括:用于计算梯度平均值计算的梯度平均值计算单元、用于获得梯度最大值的梯度最大值计算单元、用于设置梯度区间分割步长的步长设置单元、用于生成梯度区间的梯度区间生成单元;

所述梯度平均值计算单元由依次连接的累加器和除法器组成,所述梯度最大值计算单元由比较器组成。

所述像素处理模块包括:用于统计各梯度区间内像素总数的像素数统计单元、用于比较各像素数的像素数比较单元、用于标记疑似阈值像素数以及跳变最大的像素数的像素数标记单元。

本发明的基于fpga的canny算法阈值获取装置的工作参照实施例1中的方法,在此不再赘述。

以上所揭露的仅为本发明的较佳实施例,不能以此来限定本发明的权利保护范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1