基于霍夫变换的直线检测的优化设计方法

文档序号:9616500阅读:792来源:国知局
基于霍夫变换的直线检测的优化设计方法
【技术领域】
[0001]本发明涉及图像和视频处理技术领域,具体讲是一种基于霍夫变换的直线检测的优化设计方法。
【背景技术】
[0002]霍夫变换是图像处理中识别几何开关的一种方法,在图像处理中有着广泛的应用,霍夫变换不受图形旋转的影响,易于进行几何图形的快速变换。基于霍夫变换的改进方法也有很多,其中一个重要的方法是广义霍夫变换,可以用来检测任意形状的曲线。但是,在许多嵌入式系统中,使用高计算性能的处理器无论在成本还是在功耗方面都成为不可能,这就要求有非常高效的专用硬件电路来进行霍夫变换计算。

【发明内容】

[0003]本发明所要解决的技术问题是,克服现有技术的缺陷,提供一种高运算效率、低资源需求的霍夫变换计算来实现体系结构的基于霍夫变换的直线检测的优化设计方法。
[0004]为解决上述技术问题,本发明提供的基于霍夫变换的直线检测的优化设计方法,它包括以下步骤:
[0005]1)对直线建立方程式
[0006]p = xcos Θ +ysin Θ
[0007]2)通过查表方式,得到并存储cos Θ值和sin Θ值;
[0008]3)按照Θ的大小将计算分成多个并行的区域;
[0009]4)当霍夫变换完成当前帧图像计算后,不再访问结果存储器,利用另一个独立存储器对下一帧图像进行霍夫变换;同时,后续峰值检测模块开始访问霍夫变换刚刚完成的结果存储器;
[0010]5)当步骤4)中的两个霍夫变换各自的运算都完成了之后,互相交换各自占用的存储器,这样,峰值检测模块得到了新一帧图像的变换结果,而霍夫变换模块得到了一个可以重复使用的存储器。
[0011]作为改进,所述的步骤3)中,Θ的取值为0?90度,按照Θ的大小将计算分成两路并行的区域。
[0012]作为进一步改进,所述的步骤3)中,Θ的取值为0?45度,按照Θ的大小将计算分成四路并行的区域。
[0013]作为更进一步地改进,所述的步骤3)中,Θ的取值为0?30度,按照Θ的大小将计算分成六路并行的区域。
[0014]采用以上结构后,本发明与现有技术相比,具有以下优点:
[0015]1)由于在现有技术的硬件实现中,sin和cos可以通过cordic算法来计算,但是在运算时间和硬件资源上这个代价都会非常大,而采用了查表法后,由于sin和cos函数的对称性,只需存储从0到90度的函数值,-90到0度的函数值就可以同时得到,这样,计算量就相对减少;
[0016]2)另外,采用模块自身并行计算和模块间并行计算的方法后,使运算的速度有了较大的提升。
【具体实施方式】
[0017]下面结合【具体实施方式】对本发明作进一步详细地说明。
[0018]本发明提供的基于霍夫变换的直线检测的优化设计方法,它包括以下步骤:
[0019]1)对直线建立方程式
[0020]以直线检测为例,在平面直角坐标系(X—y)中,一条直线可以用方程y = kx+b来表示。对于直线上一个确定的点(Xo,y。),有yo= kx o+b,这表示参数平面(k一b)中的一条直线。因此,图像中的一个点对应参数平面中的一条直线,图像中的一条直线对应参数平面中的一个点。对图像上所有的点作霍夫变换,最终所要检测的直线对应的一定是参数平面中直线相交最多的那个点,这样就在图像中检测出了直线。
[0021]在实际应用中,直线通常采用参数方程:
[0022]p = xcos Θ +ysin Θ 公式①
[0023]2)通过查表方式,得到并存储cos Θ值和sin Θ值;如公式①所示,霍夫变换对每一个点(X,y)要计算出所有(ρ,Θ),其中p的取值在正负Sqrt〔(X_-1)2+(Y_-1)2〕之间,Θ的取值在(-90,89)之间。Ρ根据图像的分辨率大小而不同,但通常会达到1000以上的范围。所以有效的方法是扫描Θ的所有值,同时计算sin Θ和cos Θ,进而得到对应的P值。
[0024]在硬件实现中,采用了查表的方式来得到cos值和sin值,由于cos和sin函数的对称性,只需存储从0到90度的函数值,-90到0度函数值就可以同时得到。如果要进一步减小查找表的大小,还可以利用稍微复杂的乘和加运算及三角函数关系将表减小到0到45度,甚至0到30度。一个极端的情况是采用递推关系对每一度进行计算,这样只需知道cosl°和sinl°就可以了。
[0025]3)按照Θ的大小将计算分成多个并行的区域;由于cos和sin函数的对称性,可以按照Θ的大小将计算分成多个并行的区域,以查找表0到90度为例,这样,在计算P = xcos Θ +ysin Θ的时候,可以同时计算p = xcos (-Θ )+ysin (-Θ ),也就是ρ =xcos Θ -ysin Θ。可见占用资源较多的乘法运算也可以共用,唯一额外需要的资源是一个减法器。
[0026]同理,如果要进一步增加模块内计算并行性,可以和查找表的区域相配合而得到四路并行(此时,Θ的值从0到45度),六路并行(此时,Θ的值从0到30度),等等。
[0027]4)通常,霍夫变换后会拉峰值检测模块,这样会发生霍夫变换模块在后续峰值检测模块完成前不能同时对下一帧图像进行霍夫变换计算,但是由于图像通常是以流方式输入到系统中的,这就造成了存储器资源上的矛盾。为了增加霍夫变换和其它模块间的并行度,当霍夫变换完成当前帧图像计算后,不再访问结果存储器,利用另一个独立存储器对下一帧图像进行霍夫变换;同时,后续峰值检测模块开始访问霍夫变换刚刚完成的结果存储器。
[0028]5)当步骤4)中的两个霍夫变换各自的运算都完成了之后,互相交换各自占用的存储器,这样,峰值检测模块得到了新一帧图像的变换结果,而霍夫变换模块得到了一个可以重复使用的存储器。
【主权项】
1.一种基于霍夫变换的直线检测的优化设计方法,其特征在于:它包括以下步骤: 1)对直线建立方程式 P = xcos Θ +ysin Θ公式① 2)通过查表方式,得到并存储cosΘ值和sin Θ值; 3)按照Θ的大小将计算分成多个并行的区域; 4)当霍夫变换完成当前帧图像计算后,不再访问结果存储器,利用另一个独立存储器对下一帧图像进行霍夫变换;同时,后续峰值检测模块开始访问霍夫变换刚刚完成的结果存储器; 5)当步骤4)中的两个霍夫变换各自的运算都完成了之后,互相交换各自占用的存储器,这样,峰值检测模块得到了新一帧图像的变换结果,而霍夫变换模块得到了一个可以重复使用的存储器。2.根据权利要求1所述的基于霍夫变换的直线检测的优化设计方法,其特征在于:所述的步骤3)中,Θ的取值为0?90度,按照Θ的大小将计算分成两路并行的区域。3.根据权利要求1所述的基于霍夫变换的直线检测的优化设计方法,其特征在于:所述的步骤3)中,Θ的取值为0?45度,按照Θ的大小将计算分成四路并行的区域。4.根据权利要求1所述的基于霍夫变换的直线检测的优化设计方法,其特征在于:所述的步骤3)中,Θ的取值为0?30度,按照Θ的大小将计算分成六路并行的区域。
【专利摘要】本发明基于霍夫变换的直线检测的优化设计方法,对直线建立方程式按照θ的大小将计算分成多个并行的区域;当霍夫变换完成当前帧图像计算后,不再访问结果存储器,利用另一个独立存储器对下一帧图像进行霍夫变换;后续峰值检测模块开始访问霍夫变换刚刚完成的结果存储器;两个霍夫变换各自的运算都完成了之后,互相交换各自占用的存储器。sin和cos可以通过cordic算法来计算,但是在运算时间和硬件资源上这个代价都会非常大,而采用了查表法后,由于sin和cos函数的对称性,只需存储从0到90度的函数值,-90到0度的函数值就可以同时得到,这样,计算量就相对减少;采用模块自身并行计算和模块间并行计算的方法后,使运算的速度有了较大的提升。
【IPC分类】G06K9/62
【公开号】CN105373807
【申请号】CN201510703042
【发明人】潘钰华
【申请人】宁波裕兰信息科技有限公司
【公开日】2016年3月2日
【申请日】2015年10月26日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1