一种基于FPGA的灰度及二值图像膨胀腐蚀处理方法技术

技术编号:18785214 阅读:28 留言:0更新日期:2018-08-29 07:29
本发明专利技术涉及一种基于FPGA的灰度及二值图像膨胀腐蚀处理方法,该方法包括下列顺序的步骤:设定膨胀或腐蚀,确定计算方式;根据结构元素窗口宽度进行左右边界像素复制;根据膨胀腐蚀算法对复制左右边界像素后的数据进行行内计算;使用FPGA的RAM实现一个移位寄存器缓存行内计算结果;当缓存行内计算结果达到一个结构元素窗口高度时,同时读取缓存RAM中的数据,并再次根据膨胀腐蚀算法对缓存数据行间计算后输出。本发明专利技术通过左右边界复制,膨胀和腐蚀后图像宽度与原始图像宽度一致;本发明专利技术通过行缓存和流水线,有效减少结构元素窗口覆盖的目标元素的访问次数,实现膨胀和腐蚀的加速计算。

【技术实现步骤摘要】
一种基于FPGA的灰度及二值图像膨胀腐蚀处理方法
本专利技术涉及图像处理
,尤其是一种基于FPGA的灰度及二值图像膨胀腐蚀处理方法。
技术介绍
基于集合理论,数学形态学定义了一组基于结构元素集合的变换,它通过目标元素和结构元素变换计算,得到物体的形态,从而达到图像分析和识别的目的。膨胀和腐蚀是数学形态学中的基本变换,分别定义为结构元素与目标元素的并集和交集。对于二值图像,即像素取值为0和1的图像,膨胀和腐蚀分别对应结构元素覆盖目标元素的或运算和与运算;对于灰度图像,即像素取值为有限非负整数,膨胀和腐蚀分别对应结构元素覆盖目标元素的灰度值的最大值和最小值。在现有技术中,膨胀和腐蚀需多次读取结构元素覆盖的目标元素,性能受限于内存带宽。
技术实现思路
本专利技术的目的在于提供一种实现图像膨胀和腐蚀的加速计算的基于FPGA的灰度及二值图像膨胀腐蚀处理方法。为实现上述目的,本专利技术采用了以下技术方案:一种基于FPGA的灰度及二值图像膨胀腐蚀处理方法,该方法包括下列顺序的步骤:(a)设定膨胀或腐蚀,确定计算方式;(b)根据结构元素窗口宽度进行左右边界像素复制;(c)根据膨胀腐蚀算法对复制左右边界像素后的数据进行行内计算;(d)使用FPGA的RAM实现一个移位寄存器缓存行内计算结果;(e)当缓存行内计算结果达到一个结构元素窗口高度时,同时读取缓存RAM中的数据,并再次根据膨胀腐蚀算法对缓存数据行间计算后输出。在所述步骤(b)中,结构元素窗口大小为W×W的正方形,其中W为奇数;通过移位寄存器缓存完成左右边界像素复制,复制边界像素的个数等于(W-1)/2。在所述步骤(d)中,使用FPGA的RAM为双端口RAM,读写冲突时读优先,并配置移位寄存器作为数据缓存;使用FPGA的RAM的例化个数与结构元素行数W相同,且各RAM容量为输入图像的一行数据量。由上述技术方案可知,本专利技术通过左右边界复制,膨胀和腐蚀后图像宽度与原始图像宽度一致;本专利技术通过行缓存和流水线,有效减少结构元素窗口覆盖的目标元素的访问次数,实现膨胀和腐蚀的加速计算。附图说明图1是本专利技术的流程图;图2是本专利技术的实现框图;图3是本专利技术的输入图像示意图;图4是本专利技术的灰度图像边界复制示意图;图5是本专利技术的灰度图像行内计算示意图;图6是本专利技术的基于RAM的行缓存示意图;图7是本专利技术的灰度图像行间计算示意图;图8是本专利技术的二值图像边界复制示意图;图9是本专利技术的二值图像行内计算示意图;图10是本专利技术的二值图像行间计算示意图。具体实施方式一种基于FPGA的灰度及二值图像膨胀腐蚀处理方法,该方法包括下列顺序的步骤:(a)设定膨胀或腐蚀,确定计算方式;(b)根据结构元素窗口宽度进行左右边界像素复制;(c)根据膨胀腐蚀算法对复制左右边界像素后的数据进行行内计算;(d)使用FPGA的RAM实现一个移位寄存器缓存行内计算结果;(e)当缓存行内计算结果达到一个结构元素窗口高度时,同时读取缓存RAM中的数据,并再次根据膨胀腐蚀算法对缓存数据行间计算后输出。在所述步骤(b)中,结构元素窗口大小为W×W的正方形,其中W为奇数;通过移位寄存器缓存完成左右边界像素复制,复制边界像素的个数等于(W-1)/2。在所述步骤(d)中,使用FPGA的RAM为双端口RAM,读写冲突时读优先,并配置移位寄存器作为数据缓存;使用FPGA的RAM的例化个数与结构元素行数W相同,且各RAM容量为输入图像的一行数据量。实施例一选择结构元素窗口大小为3×3,灰度阶为2和宽度为32768的灰度图像为实施例一,如图1、图2、图3、图4、图5、图6和图7所示,其流程步骤描述如下:步骤1:设置膨胀或腐蚀,确定计算方式,用于指定行内计算和行间计算方式。步骤2:根据结构元素窗口大小复制边界像素,结构窗口大小为3×3,因此复制边界像素的个数为1;通过缓存2拍寄存器缓存实现边界复制,边界复制示意图如图4所示。边界像素复制时,首尾边界像素复制自身边界像素,中间边界像素复制临近边界像素。步骤3:对复制边界像素后的数据进行行内计算,实施例一行内计算示意图如图5所示,分别对应灰度图像灰度值的极值比较运算和二值图像的与或运算。在灰度图像的极值计算时,使用了两级比较运算,从而实现流水化操作。参照图5所示行内计算示意图,计算后的数据相比计算前的数据,前后各少了一个像素。因此,在行内计算前进行边界像素复制,如图4所示,复制后的数据比原始数左右各多个一个像素,从而保证行内计算后的数据位宽和原始数据位宽一致。步骤4:行内计算的结果进行行缓存。行缓存示意图如图6所示,例化RAM的个数为3,和实施例一的结构元素窗口高度3相同。各例化RAM的位宽为256,深度为128,容量为32768,与图3输入图像的一行数据量相同。例化的三个RAM为双端口RAM,且读写冲突时为读优先。例化的3个RAM通过计数器和共享写使能和读写地址,实现移位寄存器。使用RAM实现移位寄存器的具体方式为:当RAM1写满时,即写入128个数据,则RAM2可写。当RAM1通过写端口入新数据的同时,通过RAM1的读端口读出数据并写入RAM2。这要求RAM1读写冲突时读优先,RAM1的写使能和RAM2的写使能共享,RAM1的写地址、读地址和RAM2的写地址共享,从而实现RAM1中旧数据向RAM2中缓存,而RAM1缓存新数据的移位寄存器功能。当RAM1和RAM2写满时,即写入256个数据,RAM3可写。当RAM1通过写端口入新数据的同时,通过RAM1的读端口读出数据并写入RAM2,通过RAM2的读端口读出数据并写入RAM3。这同样要求RAM2读写冲突时读优先,RAM2的写使能和RAM3的写使能共享,RAM2的写地址、读地址和RAM3的写地址共享,从而实现RAM1中旧数据向RAM2中缓存,RAM2中旧数据向RAM3中缓存,而RAM1缓存新数据的移位寄存器功能。另外,由于RAM读数据延迟,RAM间可通过寄存器缓存,从而实现流水操作。步骤5:行缓存数据达到结构元素窗口宽度时,同时读取行缓存数据进行行间数据计算。当RAM1、RAM2和RAM3写满时,即写入384个数据,可进行行间计算。这时RAM1写入新数据时,除将RAM1的旧数据向RAM2缓存以及将RAM2的旧数据向RAM3缓存外,RAM1、RAM2和RAM3的读数据将用于行间计算。实施例一行间计算示意图如图7所示,而在实施例一灰度极值比较中,使用了两级比较计算,以实现流水化操作。实施例二选择结构元素窗口大小为3×3,宽度为32768的二值图像为实施例二,如图1、图2、图3、图8、图9和图10所示,其流程步骤描述如下:步骤1:设置膨胀或腐蚀,确定计算方式,用于指定行内计算和行间计算方式。步骤2:根据结构元素窗口大小复制边界像素。实施例二结构窗口大小为3×3,因此复制边界像素的个数为1。实施例二通过缓存2拍寄存器缓存实现边界复制,边界复制示意图如图8所示。边界像素复制时,首尾边界像素复制自身边界像素,中间边界像素复制临近边界像素。步骤3:对复制边界像素后的数据进行行内计算。实施例二行内计算示意图如图9所示,分别对应灰度图像灰度值的极值比较运算和二值图像的与或运算。在灰度图像的极值计算时,使用了两级比较运算,从而实现流水化操作。参照图9所示行内计算示意图,本文档来自技高网...

【技术保护点】
1.一种基于FPGA的灰度及二值图像膨胀腐蚀处理方法,其特征在于:该方法包括下列顺序的步骤:(a)设定膨胀或腐蚀,确定计算方式;(b)根据结构元素窗口宽度进行左右边界像素复制;(c)根据膨胀腐蚀算法对复制左右边界像素后的数据进行行内计算;(d)使用FPGA的RAM实现一个移位寄存器缓存行内计算结果;(e)当缓存行内计算结果达到一个结构元素窗口高度时,同时读取缓存RAM中的数据,并再次根据膨胀腐蚀算法对缓存数据行间计算后输出。

【技术特征摘要】
1.一种基于FPGA的灰度及二值图像膨胀腐蚀处理方法,其特征在于:该方法包括下列顺序的步骤:(a)设定膨胀或腐蚀,确定计算方式;(b)根据结构元素窗口宽度进行左右边界像素复制;(c)根据膨胀腐蚀算法对复制左右边界像素后的数据进行行内计算;(d)使用FPGA的RAM实现一个移位寄存器缓存行内计算结果;(e)当缓存行内计算结果达到一个结构元素窗口高度时,同时读取缓存RAM中的数据,并再次根据膨胀腐蚀算法对缓存数据行间计算后输出。2.根据权利要求1所述的基于FPGA的...

【专利技术属性】
技术研发人员:卞洪飞
申请(专利权)人:合肥芯碁微电子装备有限公司
类型:发明
国别省市:安徽,34

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

1