一种基于FPGA的CANNY算法阈值获取方法及装置制造方法及图纸

技术编号:17347285 阅读:30 留言:0更新日期:2018-02-25 13:14
本发明专利技术提供基于FPGA的CANNY算法阈值获取方法及装置,方法包括:计算待处理视频帧的梯度最大值和平均值;确定分割步长及分割总数,得到梯度区间;统计所有梯度区间的像素数;比较相邻梯度区间像素数相差幅度是否超过预设幅度,是则将相邻梯度区间中较小者的像素数标记为疑似阈值像素数;在疑似阈值像素数中获得跳变最大的像素数;根据所述跳变最大的像素数计算系统阈值;利用所述最终阈值进行边缘检测。本发明专利技术实现了CANNY算法阈值的快速获取。

A method and device for obtaining threshold value of CANNY algorithm based on FPGA

The invention provides a method and a device for acquiring, CANNY algorithm based on FPGA threshold method includes: maximum gradient value and average value calculation to determine the segmentation of video frames; the total number of steps and segmentation, gradient interval; the number of pixels in all statistical gradient interval; whether the adjacent pixel number margin gradient interval exceeds the preset range, it is the number of pixels in adjacent markers smaller gradient interval for suspected threshold number of pixels; the number of pixels to obtain the biggest jump in the number of pixels in the suspected threshold; according to the number of pixels in the largest jump computing system threshold; edge detection using the final threshold. The invention realizes the fast acquisition of the threshold of the CANNY algorithm.

【技术实现步骤摘要】
一种基于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。例如,在本实施例中,各相邻梯度本文档来自技高网
...
一种基于FPGA的CANNY算法阈值获取方法及装置

【技术保护点】
一种基于FPGA的CANNY算法阈值获取方法,其特征在于,包括:计算待处理视频帧的梯度最大值和平均值;确定分割步长及分割总数,得到梯度区间;统计所有梯度区间的像素数;比较相邻梯度区间像素数相差幅度是否超过预设幅度,是则将相邻梯度区间中较小者的像素数标记为疑似阈值像素数;在疑似阈值像素数中获得跳变最大的像素数;根据所述跳变最大的像素数计算系统阈值;利用所述最终阈值进行边缘检测。

【技术特征摘要】
1.一种基于FPGA的CANNY算法阈值获取方法,其特征在于,包括:计算待处理视频帧的梯度最大值和平均值;确定分割步长及分割总数,得到梯度区间;统计所有梯度区间的像素数;比较相邻梯度区间像素数相差幅度是否超过预设幅度,是则将相邻梯度区间中较小者的像素数标记为疑似阈值像素数;在疑似阈值像素数中获得跳变最大的像素数;根据所述跳变最大的像素数计算系统阈值;利用所述最终阈值进行边缘检测。2.根据权利要求1所述的基于FPGA的CANNY算法阈值获取方法,其特征在于,所述相邻梯度区间像素数相差幅度=(相邻梯度区间中梯度较大者的像素数-相邻梯度区间中梯度较小者的像素数)/相邻梯度区间中梯度较小者的像素数。3.根据权利要求1所述的基于FPGA的CANNY算法阈值获取方法,其特征在于,所述分割总数不少于5。4.根据权利要求1所述的基于FPGA的CANNY算法阈值获取方法,其特征在于,所述系统阈值等于跳变最大的像素数对应的梯度区间两个端点值的算术平均值。5.一种基于FPGA的CANNY算法阈值获取装置,其特征在于,包括:梯度输入模块、梯度处理模块、像素处...

【专利技术属性】
技术研发人员:侯太炎徐焕东杜仙童
申请(专利权)人:惠州华阳通用电子有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1