一种基于FPGA外置存储器的均值滤波方法及装置制造方法及图纸

技术编号:31506942 阅读:17 留言:0更新日期:2021-12-22 23:39
本发明专利技术涉及一种基于FPGA外置存储器的均值滤波方法及装置,该方法包括:在FPGA外置存储器中分配大于等于待处理图像分辨率的地址空间;获取待处理图像每行像素点灰度值的第一累加和;将每行第一累加和依次写入地址空间;从地址空间中读取第一累加和,并进行第一转置处理,形成m*n的形式;根据经第一转置处理后的第一累加和获取待处理图像的第二累加和;将第二累加和写入地址空间并读出,第二次转置处理,形成n*m的形式;对经第二转置处理后的第二累加和逐像素点做除法运算,得到均值滤波结果。本发明专利技术还涉及一种基于FPGA外置存储器的均值滤波装置。本发明专利技术可以适应任意图像分辨率以及任意滤波窗口尺寸的情况。及任意滤波窗口尺寸的情况。及任意滤波窗口尺寸的情况。

【技术实现步骤摘要】
一种基于FPGA外置存储器的均值滤波方法及装置


[0001]本申请涉及图像处理
,尤其涉及一种基于FPGA外置存储器的均值滤波方法及装置。

技术介绍

[0002]在采集图像过程中,常常会收到不希望出现的信号的干扰,这些干扰图像质量的信号就是图像噪声。例如在低照度下通过相机摄取图像时,由于光照太暗,造成摄取的图像不会太清晰。若想获得较清晰的图像,可以通过提高曝光时间和增益实现,但是这样做又会导致图像中出现大量的随机噪声,而随机噪声会降低图像的质量和精度。
[0003]为了实现对含随机噪声的图像进行降噪,需要采用降噪算法实现,例如均值滤波算法。
[0004]均值滤波是一种针对图像的滤波方法,按照该方法,预先针对图像上的目标像素点(通常为滤波窗口中心的像素点)给一个一定尺寸的滤波窗口,在滤波窗口中,有目标像素点及周围的临近像素点,再用滤波窗口中的全体像素点灰度值的平均值来代替该窗口内目标像素点的灰度值。进一步地,令滤波窗口在图像上逐像素点进行滑动窗口算法处理,对所有像素点滑动窗口算法处理完的结果即为均值滤波后的图像结果。
[0005]均值滤波可以基于硬件平台来实现,例如可以基于FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)来实现。基于FPGA实现均值滤波时,需要存储一定行数的图像数据至FPGA内嵌的可配置存储器BRAM。
[0006]在均值滤波数据存储时,根据图像分辨率大小以及预设均值滤波窗口尺寸的不同,BRAM的占用量也不相同。对于图像分辨率大以及预设均值滤波窗口尺寸大的情况,则需要很多的BRAM,例如,图像水平分辨率为2048,预设均值滤波窗口为5
×
5,则需要8个BRAM,预设均值滤波窗口为15
×
15,则需要28个BRAM,图像水平分辨率为8192,预设均值滤波窗口为5
×
5,则需要32个BRAM,预设均值滤波窗口为15
×
15,则需要112个BRAM。均值滤波时,由于每个预设均值滤波窗口的均值滤波数据为将该预设均值滤波窗口内的像素点灰度值依次累加得到的值的平均值,预设均值滤波窗口越大,依次累加处理的数据量越大,同时,图像分辨率越大,占用的BRAM个数越多,其中,预设均值滤波窗口大小可以为3*3、5*5、7*7、9*9、11*11、13*13、15*15
……
(2n+1)*(2n+1),其中,两个2n+1分别指预设均值滤波窗口的水平方向尺寸和预设均值滤波窗口的垂直方向尺寸。
[0007]然而,FPGA中内嵌的BRAM个数是有限的,在针对图像高分辨率较大的图像均值滤波时,且其均值滤波窗口比较大时,可能出现BRAM不够存储的情况。

技术实现思路

[0008]本申请提供了一种基于FPGA外置存储器的均值滤波方法及装置,可以适应任意图像分辨率、任意滤波窗口尺寸的情况,具有均值滤波时不占用FPGA内部存储器BRAM,且采用递归累加计算方法大大降低了数据运算量,运算量不随滤波窗口变化而变化的优势。
[0009]本申请采用的技术方案如下:
[0010]本专利技术公开一种基于FPGA外置存储器的均值滤波方法,所述方法包括:
[0011]在所述FPGA外置存储器中分配大于等于待处理图像分辨率的地址空间,若所述待处理图像的像素点为n*m个,则所述地址空间可存储的像素的大小为大于等于n*m,n表示n行,m表示m列;
[0012]获取所述待处理图像每行像素点灰度值的第一累加和,所述第一累加和为将该行每个像素点依次作为中心像素点逐第一滤波窗口滑动重新得到的新像素点灰度值,所述新像素点灰度值包括将每个第一滤波窗口内像素点灰度值的累加和作为该窗口内的中心像素点得到的像素点灰度值,所述第一滤波窗口的尺寸为预设均值滤波窗口的水平方向尺寸;
[0013]将每行所述第一累加和依次写入所述地址空间;
[0014]从所述地址空间中读取所述第一累加和,并进行第一转置处理,所述第一转置处理为将每行得到的新像素点灰度值转成列,形成m*n的形式,此时,m表示m行,n表示n列;
[0015]根据经第一转置处理后的第一累加和获取待处理图像的第二累加和,所述第二累加和为将该行每个像素点依次作为中心像素点逐第二滤波窗口滑动重新得到的新像素点灰度值,所述新像素点灰度值包括将每个第二滤波窗口内像素点灰度值的累加和作为该窗口内的中心像素点得到的像素点灰度值,所述第二滤波窗口尺寸为预设均值滤波窗口的垂直方向尺寸;
[0016]将所述第二累加和写入所述地址空间并读出,进行第二次转置处理,所述第二转置处理为将所述第二累加和再转为n*m的形式;
[0017]对经第二转置处理后的第二累加和逐像素点做除法运算,得到均值滤波结果。
[0018]在一种可实现的实施方式中,将该行每个像素点依次作为中心像素点逐第一滤波窗口/第二滤波窗口滑动重新得到的新像素点灰度值,计算过程包括:
[0019]将该行每个像素点依次作为中心像素点,逐尺寸为x的第一滤波窗口/第二滤波窗口滑动重新得到新像素点的灰度值,x表示x个像素点,x大于等于3,x为奇数。
[0020]进一步地,计算将首个第一滤波窗口/第二滤波窗口内的像素点灰度值的累加和作为该窗口内中心像素点得到的像素点灰度值,包括:
[0021]将首个尺寸为x第一滤波窗口/第二滤波窗口内像素点灰度值的累加和作为所述首个第一滤波窗口/第二滤波窗口内的中心像素点的灰度值;
[0022]将所述首个第一滤波窗口/第二滤波窗口内像素点灰度值的累加和存储至所述地址空间。
[0023]进一步地,计算下一个第一滤波窗口/第二滤波窗口至最后一个第一滤波窗口/第二滤波窗口内像素点累加和作为该窗口内中心像素点得到的像素点灰度值,包括:
[0024]计算当前第一滤波窗口/第二滤波窗口内像素点的灰度值累加和,用上一个第一滤波窗口/第二滤波窗口的灰度值累加和减去上一个第一滤波窗口/第二滤波窗口内第一个像素点的灰度值,加上当前第一滤波窗口/第二滤波窗口内最后一个像素点的灰度值,即为当前第一滤波窗口/第二滤波窗口内像素点的灰度值的累加和。
[0025]进一步地,边缘数据所处的第一滤波窗口/第二滤波窗口内存在缺失数据,所述缺失数据均可以为自定义灰度值数据,也可以为复制的第一滤波窗口/第二滤波窗口内的像
素点灰度值;所述边缘数据为待处理图像每行像素点中首端(x

1)/2个像素点和尾端(x

1)/2个像素点。
[0026]在一种可实现的实施方式中,所述除法运算公式为:所述均值滤波结果=第二累加和/(第一滤波窗口尺寸*第二滤波窗口尺寸)。
[0027]本专利技术还公开一种基于FPGA外置存储器的均值滤波装置,所述装置包括:
[0028]分配模块,所述分配模块用于在所述FPGA外置存储器中分配大于等于待处理图像分辨率的地址空间,若所述待处理图像的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA外置存储器的均值滤波方法,其特征在于,所述方法包括:在所述FPGA外置存储器中分配大于等于待处理图像分辨率的地址空间,若所述待处理图像的像素点为n*m个,则所述地址空间可存储的像素的大小为大于等于n*m,n表示n行,m表示m列;获取所述待处理图像每行像素点灰度值的第一累加和,所述第一累加和为将该行每个像素点依次作为中心像素点逐第一滤波窗口滑动重新得到的新像素点灰度值,所述新像素点灰度值包括将每个第一滤波窗口内像素点灰度值的累加和作为该窗口内的中心像素点得到的像素点灰度值,所述第一滤波窗口的尺寸为预设均值滤波窗口的水平方向尺寸;将每行所述第一累加和依次写入所述地址空间;从所述地址空间中读取所述第一累加和,并进行第一转置处理,所述第一转置处理为将每行得到的新像素点灰度值转成列,形成m*n的形式,此时,m表示m行,n表示n列;根据经第一转置处理后的第一累加和获取待处理图像的第二累加和,所述第二累加和为将该行每个像素点依次作为中心像素点逐第二滤波窗口滑动重新得到的新像素点灰度值,所述新像素点灰度值包括将每个第二滤波窗口内像素点灰度值的累加和作为该窗口内的中心像素点得到的像素点灰度值,所述第二滤波窗口尺寸为预设均值滤波窗口的垂直方向尺寸;将所述第二累加和写入所述地址空间并读出,进行第二次转置处理,所述第二转置处理为将所述第二累加和再转为n*m的形式;对经第二转置处理后的第二累加和逐像素点做除法运算,得到均值滤波结果。2.根据权利要求1所述的基于FPGA外置存储器的均值滤波方法,其特征在于,将该行每个像素点依次作为中心像素点逐第一滤波窗口/第二滤波窗口滑动重新得到的新像素点灰度值,计算过程包括:将该行每个像素点依次作为中心像素点,逐尺寸为x的第一滤波窗口/第二滤波窗口滑动重新得到新像素点的灰度值,x表示x个像素点,x大于等于3,x为奇数。3.根据权利要求2所述的基于FPGA外置存储器的均值滤波方法,其特征在于,计算将首个第一滤波窗口/第二滤波窗口内的像素点灰度值的累加和作为该窗口内中心像素点得到的像素点灰度值,包括:将首个尺寸为x第一滤波窗口/第二滤波窗口内像素点灰度值的累加和作为所述首个第一滤波窗口/第二滤波窗口内的中心像素点的灰度值;将所述首个第一滤波窗口/第二滤波窗口内像素点灰度值的累加和存储至所述地址空间。4.根据权利要求3所述的基于FPGA外置存储器的均值滤波方法,其特征在于,计算下一个第一滤波窗口/第二滤波窗口至最后一个第一滤波窗口/第二滤波窗口内像素点累加和作为该窗口内中心像素点得到的像素点灰度值,包括:计算当前第一滤波窗口/第二滤波窗口内像素点的灰度值累加和,用上一个第一滤波窗口/第二滤波窗口的灰度值累加和减去上一个第一滤波窗口/第二滤波窗口内第一个像素点的灰度值,加上当前第一滤波窗口/第二滤波窗口内最后一个像素点的灰度值,即为当前第一滤波窗口/第二滤波窗口内像素点的灰度值的累加和。5.根据权利要求1~4任意一项所述的基于FPGA外置存储器的均值滤波方法,其特征在
于,边缘数据所处的第一滤波窗口/第二滤波窗口内存在缺失数据,所述缺失数据均可以为自定义灰度值数据,也可以为复制该第一滤波窗口/第二滤波窗口内的像素点灰度值;所述边缘数据为待处理图像每行像素点中首端(x

1)/2个像素点和尾端(x

1)/2个像素点。6.根据权利要求1所述的基于FPGA外置存储器的均值滤波方法,其特征在于,所...

【专利技术属性】
技术研发人员:郭慧姚毅杨艺张见戚涛
申请(专利权)人:深圳市凌云视迅科技有限责任公司
类型:发明
国别省市:

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

1