基于FPGA形态学算子的灰度图像处理系统及方法与流程

文档序号:17492686发布日期:2019-04-23 20:48阅读:191来源:国知局
基于FPGA形态学算子的灰度图像处理系统及方法与流程
本发明属于图像处理
技术领域
,更进一步涉及灰度图像处理
技术领域
中的一种基于现场可编程门阵列fpga(fieldprogrammablegatearray)自适应形态学算子的灰度图像处理系统及方法。本发明可以对遥感、军事、工业、医学等领域中获得的灰度图像进行噪声抑制、图像分割、边缘检测、特征提取等处理。
背景技术
:随着信息技术的不断发展,数字图像已成为人类获取信息的一种重要手段,广泛应用于通信、军事、医学等领域。利用数学形态学来处理数字图像能够获得很好的效果,可以有效地解决数字图像处理领域中的抑制噪声、图像分割、边缘检测、特征提取等问题。fpga采用并行计算方式,对于规则固定的运算可以达到很快的处理速度,因此研究fpga和数学形态学的结合可以很好地应用于数字图像处理。山东理工大学在其申请的专利文献“基于综合形态学的图像混合滤波装置及方法”(申请日:2016年05月10日,申请号:201610305134.3,公开号:106023095b)中提出了一种基于综合形态学的图像混合滤波装置及方法。该装置包括基本模型构建模块,约束条件构建模块,混合模型构建模块,噪声图像处理模块。基本模型构建模块,用于构建基本形态学滤波模型。约束条件构建模块,用于构建滤波计算模型的约束条件,该约束条件包括结构元素个数以及权值约束条件。混合模型构建模块,用于依据上述构建的基本形态学滤波模型以及约束条件构建用于图形滤波的综合形态学混合滤波计算模型。噪声图像处理模块,用于使用上述构建的混合滤波计算模型对输入的待处理噪声图像进行滤波处理。该系统存在的不足之处是:对于要处理的图像,用基本的形态学滤波模型进行滤波,不能根据图像自身的特点做出自适应的调整。重庆大学在其申请的专利文献“一种图像形态学滤波方法”(申请日:2015年12月17日,申请号:201510953779.3,公开号:105551002a)中提出了一种灰度图像的形态学滤波方法。该方法的实现过程为:首先获取原始灰度图像的尺寸大小,确定形态学运算类型和结构元素,然后根据图像尺寸、结构元素及图像处理器的内存对原始图像进行分解,得到多个子图像,最后利用图像处理器对多个子图像依次进行与滤波运算类型对应的基于选定结构元素的形态学滤波运算。该方法存在的不足之处是:用固定的结构元素对灰度图像进行形态学滤波,会造成原图像细节等局部特征信息丢失严重;只在软件上实现灰度图像的形态学滤波,由于软件的运算方式是串行的,处理速度较慢。技术实现要素:本发明的目的是针对上述现有技术的不足,提出一种基于现场可编程门阵列fpga自适应形态学算子的灰度图像处理系统及方法。实现本发明目的的思路是:首先,通过控制模块将灰度图像的像素值数据存储到静态随机存储器sram中;其次,数据读取模块将要处理的像素点与其八邻域内的像素点取出构建3×3的搜索模板;然后,模板更新模块根据灰度距离,更新模板中的像素值;最后,膨胀运算模块和腐蚀运算模块分别对模板中心像素进行膨胀和腐蚀操作,并将运算结果存入相应的存储器中。本发明的系统包括控制模块、数据读取模块、模板更新模块、膨胀运算模块、腐蚀运算模块,其中:所述的控制模块,用于将输入的待处理灰度图像的像素值数据存储到静态随机存储器sram中,记录灰度图像的行数row,将行标志位i的值置为1,协调数据读取模块、模板更新模块、膨胀运算模块、腐蚀运算模块的运作;所述的数据读取模块,用于从静态随机存储器sram中,读取灰度图像第i行的像素值数据缓存到行缓存器fifo1,读取灰度图像第i+1行的像素值数据缓存到行缓存器fifo2中,每次分别从静态随机存储器sram中的灰度图像的第i+2行、行缓存器fifo1、行缓存器fifo2中各读取3个像素值数据,将读取的9个像素值数据分别存储到各自的寄存器中,将每个寄存器内存储的像素值,按照在灰度图像的位置关系,排列组成3×3的搜索模板,并将搜索模板送到模板更新模块;所述的模板更新模块,用于对搜索模板中每个像素值与搜索模板中心位置的像素值的差值取绝对值操作,得到搜索模板中的每个像素值与中心像素值的灰度距离,遍历搜索模板中每个像素值与中心像素值的灰度距离,用搜索模板的中心像素值替换搜索模板中灰度距离大于30的所有像素值,并将像素值更新后的搜索模板送到膨胀运算模块和腐蚀运算模块;所述的膨胀运算模块,用于将搜索模板中的所有像素值输入到树状流水线比较器中,得到搜索模板中所有像素值中的最大值,作为搜索模板中心位置像素的膨胀值,并将膨胀值写入动态随机存储器dram1中;所述的腐蚀运算模块,用于将搜索模板中的所有像素值输入到树状流水线比较器中,得到搜索模板中所有像素值中的最小值,作为搜索模板中心位置像素的腐蚀值,并将结腐蚀值写入动态随机存储器dram2中。本发明方法的具体步骤包括如下:(1)输入待处理的灰度图像:控制模块将输入的待处理灰度图像的像素值数据存储到静态随机存储器sram中,记录灰度图像行数row,将行标志位i的值置为1;(2)构建搜索模板:(2a)数据读取模块从静态随机存储器sram中,读取灰度图像第i行的像素值数据缓存到行缓存器fifo1,读取灰度图像第i+1行的像素值数据缓存到行缓存器fifo2中;(2b)数据读取模块每次分别从静态随机存储器sram中的灰度图像的第i+2行、行缓存器fifo1、行缓存器fifo2中各读取3个像素值数据,将读取的9个像素值数据分别存储到各自的寄存器中;(2c)数据读取模块将每个寄存器内存储的像素值,按照在灰度图像的位置关系,排列组成3×3的搜索模板;(3)更新模板中的像素值:(3a)模板更新模块对搜索模板中每个像素值与搜索模板中心位置的像素值的差值取绝对值操作,得到搜索模板中的每个像素值与中心像素值的灰度距离;(3b)模板更新模块遍历搜索模板中每个像素值与中心像素值的灰度距离,用搜索模板的中心像素值替换搜索模板中灰度距离大于30的所有像素值;(4)对搜索模板中心位置像素进行膨胀操作:膨胀运算模块将搜索模板中的所有像素值输入到树状流水线比较器中,得到搜索模板中所有像素值中的最大值,作为搜索模板中心位置像素的膨胀值,并将膨胀值写入动态随机存储器dram1后执行步骤(6);(5)对搜索模板中心位置像素进行腐蚀操作:腐蚀运算模块将搜索模板中的所有像素值输入到树状流水线比较器中,得到搜索模板中所有像素值中的最小值,作为搜索模板中心位置像素的腐蚀值,并将结腐蚀值写入动态随机存储器dram2后执行步骤(6);(6)判断当前行标志位i的值是否等于灰度图像的行数减2的值,若是,则执行步骤(7),否则,将i加1后执行步骤(2);(7)完成灰度图像的形态学滤波。本发明与现有的技术相比具有以下优点:第一,由于本发明系统中的模板更新模块,可根据搜素模板中的每个像素值与中心像素值的灰度距离更新搜索模板中的像素值,克服了现有技术中的系统用基本的形态学滤波模型对灰度图像进行滤波时,不能根据图像自身特点做出调整而导致滤波效果差的缺点,使得本发明的系统能够实现对灰度图像的自适应形态学滤波,使得滤波效果较为柔和,更加符合人眼的视觉特性。第二,由于本发明的方法采用了更新模板中的像素值的方法,进而对模板中心像素进行膨胀和腐蚀操作,克服了现有技术中用固定的结构元素,对灰度图像进行形态学滤波时原图像细节等局部特征信息丢失严重的问题,使得本发明在对灰度图像进行形态学滤波时能够较好地保留原图像的局部特征信息,滤波得到的图像的细节与原图像更加吻合。第三,由于本发明的方法是在现场可编程门阵列fpga上实现灰度图像的形态学滤波,克服了现有技术中只在软件上实现灰度图像的形态学滤波速度较慢的缺点,使得本发明具有对灰度图像进行形态学滤波速度快的优点。附图说明图1是本发明系统的结构示意图;图2是本发明方法的流程图;图3是本发明仿真实验的结果图。具体实施方式下面结合附图对本发明做进一步的描述。参照图1对本发明系统做进一步的描述。本发明的系统包括控制模块、数据读取模块、模板更新模块、膨胀运算模块、腐蚀运算模块。所述的控制模块,用于将输入的待处理灰度图像的像素值数据存储到静态随机存储器sram中,记录灰度图像的行数row,将行标志位i的值置为1,协调数据读取模块、模板更新模块、膨胀运算模块、腐蚀运算模块的运作。所述的数据读取模块,用于从静态随机存储器sram中,读取灰度图像第i行的像素值数据缓存到行缓存器fifo1,读取灰度图像第i+1行的像素值数据缓存到行缓存器fifo2中,每次分别从静态随机存储器sram中的灰度图像的第i+2行、行缓存器fifo1、行缓存器fifo2中各读取3个像素值数据,将读取的9个像素值数据分别存储到各自的寄存器中,将每个寄存器内存储的像素值,按照在灰度图像的位置关系,排列组成3×3的搜索模板,并将搜索模板送到模板更新模块。所述的模板更新模块,用于对搜索模板中每个像素值与搜索模板中心位置的像素值的差值取绝对值操作,得到搜索模板中的每个像素值与中心像素值的灰度距离,遍历搜索模板中每个像素值与中心像素值的灰度距离,用搜索模板的中心像素值替换搜索模板中灰度距离大于30的所有像素值,并将像素值更新后的搜索模板送到膨胀运算模块和腐蚀运算模块。所述的膨胀运算模块,用于将搜索模板中的所有像素值输入到树状流水线比较器中,得到搜索模板中所有像素值中的最大值,作为搜索模板中心位置像素的膨胀值,并将膨胀值写入动态随机存储器dram1中。所述的腐蚀运算模块,用于将搜索模板中的所有像素值输入到树状流水线比较器中,得到搜索模板中所有像素值中的最小值,作为搜索模板中心位置像素的腐蚀值,并将结腐蚀值写入动态随机存储器dram2中。下面结合图2对本发明的方法做进一步的描述。步骤1,输入待处理的灰度图像。控制模块将输入的待处理灰度图像的像素值数据存储到静态随机存储器sram中,记录灰度图像的行数row,将行标志位i的值置为1。步骤2,构建搜索模板。数据读取模块从静态随机存储器sram中,读取灰度图像第i行的像素值数据缓存到行缓存器fifo1,读取灰度图像第i+1行的像素值数据缓存到行缓存器fifo2中。数据读取模块每次分别从静态随机存储器sram中的灰度图像的第i+2行、行缓存器fifo1、行缓存器fifo2中各读取3个像素值数据,将读取的9个像素值数据分别存储到各自的寄存器中。数据读取模块将每个寄存器内存储的像素值,按照在灰度图像的位置关系,排列组成3×3的搜索模板。步骤3,更新模板中的像素值。模板更新模块对搜索模板中每个像素值与搜索模板中心位置的像素值的差值取绝对值操作,得到搜索模板中的每个像素值与中心像素值的灰度距离。模板更新模块遍历搜索模板中每个像素值与中心像素值的灰度距离,用搜索模板的中心像素值替换搜索模板中灰度距离大于30的所有像素值。步骤4,对搜索模板中心位置像素进行膨胀操作。膨胀运算模块将搜索模板中的所有像素值输入到树状流水线比较器中,得到搜索模板中所有像素值中的最大值,作为搜索模板中心位置像素的膨胀值,并将膨胀值写入动态随机存储器dram1后执行步骤6。步骤5,对搜索模板中心位置像素进行腐蚀操作:腐蚀运算模块将搜索模板中的所有像素值输入到树状流水线比较器中,得到搜索模板中所有像素值中的最小值,作为搜索模板中心位置像素的腐蚀值,并将结腐蚀值写入动态随机存储器dram2后执行步骤6。所述的树状流水线比较器是由4层组成的,第1层设置有4个比较器,第2层设置有2个比较器,第3层设置有1个比较器,第4层设置有1个比较器,每个比较器后连接1个寄存器,用于缓存比较结果,树状流水线比较器能够对输入的像素值进行比较,得到输入的所有像素值的最大值或最小值。步骤6,判断当前行标志位i的值是否等于灰度图像的行数减2的值,若是,则执行步骤7,否则,将i加1后执行步骤2。步骤7,完成灰度图像的形态学滤波。下面结合仿真实验对本发明的效果做进一步详细描述。1.仿真条件:本发明的仿真实验是在matlabr2018a软件和modelsimse-6410.5软件中编程实现的。本发明的仿真实验所使用的输入图像是大小为512×512像素,格式为jpeg的灰度图像。2.仿真内容与结果分析:本发明的仿真实验1是分别采用本发明的方法与现有技术的基于cpu的灰度图像形态学滤波方法,分别对输入图像是大小为512×512的灰度图像进行形态学滤波。表1中分别列出了本发明的方法与现有技术基于cpu的方法处理一幅图像所用的时间对比表。表1处理一幅图像所用时间对比表(单位:ms)基于cpu的方法耗时400本发明方法耗时50由表1可见,本发明所提出的基于现场可编程门阵列fpga的灰度图像形态学滤波方法,相比基于cpu的灰度图像形态学滤波方法,处理一幅图片所用时间明显减少。本发明的仿真实验2是分别采用本发明的自适应形态学滤波方法与现有技术中的基于固定结构元素的形态学滤波方法,分别对输入512×512的灰度图像进行形态学滤波,得到处理后的结果图像,如图3所示。图3为本发明仿真实验2的结果图。其中,图3(a)是采用本发明方法对输入512×512的灰度图像进行膨胀操作后的结果图。图3(b)是采用本发明方法对输入512×512的灰度图像进行腐蚀操作后的结果图。图3(c)是采用现有技术的方法对输入512×512的灰度图像进行膨胀操作后的结果图。图3(d)是采用现有技术的方法对输入512×512的灰度图像进行腐蚀操作后的结果图。对比本发明和现有技术的方法,分别对输入的灰度图像进行膨胀操作后的图像3(a)与图像3(c)可见,用本发明的方法得到的图像更清晰,细节处理得更好。对比本发明和现有技术的方法,分别对输入的灰度图像进行腐蚀操作得到的图像3(b)与图像3(d)可见,用本发明的方法得到的图像更明亮,更好地保留了图像的局部特征信息。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1