CN108460784B - 一种基于fpga的灰度及二值图像膨胀腐蚀处理方法 - Google Patents

一种基于fpga的灰度及二值图像膨胀腐蚀处理方法 Download PDF

Info

Publication number
CN108460784B
CN108460784B CN201810061135.7A CN201810061135A CN108460784B CN 108460784 B CN108460784 B CN 108460784B CN 201810061135 A CN201810061135 A CN 201810061135A CN 108460784 B CN108460784 B CN 108460784B
Authority
CN
China
Prior art keywords
data
line
cache
ram
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810061135.7A
Other languages
English (en)
Other versions
CN108460784A (zh
Inventor
卞洪飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Xinqi Microelectronics Equipment Co ltd
Original Assignee
Hefei Xinqi Microelectronics Equipment Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hefei Xinqi Microelectronics Equipment Co ltd filed Critical Hefei Xinqi Microelectronics Equipment Co ltd
Priority to CN201810061135.7A priority Critical patent/CN108460784B/zh
Publication of CN108460784A publication Critical patent/CN108460784A/zh
Application granted granted Critical
Publication of CN108460784B publication Critical patent/CN108460784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/155Segmentation; Edge detection involving morphological operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Analysis (AREA)

Abstract

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

Description

一种基于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所示行内计算示意图,计算后的数据相比计算前的数据,前后各少了一个像素。因此,在行内计算前进行边界像素复制,如图8所示,复制后的数据比原始数左右各多个一个像素,从而保证行内计算后的数据位宽和原始数据位宽一致。
步骤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的读数据将用于行间计算。实施例二行间计算示意图如图9所示,而在实施例一灰度极值比较中,使用了两级比较计算,以实现流水化操作。
实施例1和实施例2具有相同实现框图。实现框图采用流水线结构,数据依次进入边界复制、行内计算、行缓存和行间计算单元部件,而选择器分别控制行内计算和行间计算单元。结构元素窗口大小是可选择的,本发明的以窗口大小为3*3为例进行说明,可反映在图2中行缓存个数为3,图6中例化RAM的个数是3,图4和图8中赋值边界像素个数为1,即(3-1)/2,图5、图7、图9和图10中以3个像素为计算单位,但没有单独画出结构元素窗口。
综上所述,本发明通过左右边界复制,膨胀和腐蚀后图像宽度与原始图像宽度一致;本发明通过行缓存和流水线,有效减少结构元素窗口覆盖的目标元素的访问次数,实现膨胀和腐蚀的加速计算。

Claims (1)

1.一种基于FPGA的灰度及二值图像膨胀腐蚀处理方法,其特征在于:该方法包括下列顺序的步骤:
(a)设定膨胀或腐蚀,确定计算方式;
(b)根据结构元素窗口宽度进行左右边界像素复制;
(c)根据膨胀腐蚀算法对复制左右边界像素后的数据进行行内计算;
(d)使用FPGA的RAM实现一个移位寄存器缓存行内计算结果;
(e)当缓存行内计算结果达到一个结构元素窗口高度时,同时读取缓存RAM中的数据,并再次根据膨胀腐蚀算法对缓存数据行间计算后输出;
在所述步骤(b)中,结构元素窗口大小为W×W的正方形,其中W为奇数;通过移位寄存器缓存完成左右边界像素复制,复制边界像素的个数等于(W - 1)/2;
在所述步骤(d)中,使用FPGA的RAM为双端口RAM,读写冲突时读优先,并配置移位寄存器作为数据缓存;使用FPGA的RAM的例化个数与结构元素行数W相同,且各RAM容量为输入图像的一行数据量。
CN201810061135.7A 2018-01-22 2018-01-22 一种基于fpga的灰度及二值图像膨胀腐蚀处理方法 Active CN108460784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810061135.7A CN108460784B (zh) 2018-01-22 2018-01-22 一种基于fpga的灰度及二值图像膨胀腐蚀处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810061135.7A CN108460784B (zh) 2018-01-22 2018-01-22 一种基于fpga的灰度及二值图像膨胀腐蚀处理方法

Publications (2)

Publication Number Publication Date
CN108460784A CN108460784A (zh) 2018-08-28
CN108460784B true CN108460784B (zh) 2022-03-22

Family

ID=63238446

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810061135.7A Active CN108460784B (zh) 2018-01-22 2018-01-22 一种基于fpga的灰度及二值图像膨胀腐蚀处理方法

Country Status (1)

Country Link
CN (1) CN108460784B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569684B (zh) * 2019-09-19 2023-05-12 南京全鉴信息技术有限公司 一种小容量缓存的图像二值化方法
CN113050385B (zh) * 2021-03-04 2022-04-22 苏州大学 一种dmd光刻机中灰度图像数据存储方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0984005A (ja) * 1995-09-14 1997-03-28 Mitsubishi Electric Corp 画像伸張装置
CN1556503A (zh) * 2004-01-09 2004-12-22 清华大学 图像处理中的快速形态学腐蚀、膨胀方法
CN106558033A (zh) * 2016-10-19 2017-04-05 安徽中科华澄智能科技股份有限公司 基于形态学膨胀腐蚀算法的二值图像处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0984005A (ja) * 1995-09-14 1997-03-28 Mitsubishi Electric Corp 画像伸張装置
CN1556503A (zh) * 2004-01-09 2004-12-22 清华大学 图像处理中的快速形态学腐蚀、膨胀方法
CN106558033A (zh) * 2016-10-19 2017-04-05 安徽中科华澄智能科技股份有限公司 基于形态学膨胀腐蚀算法的二值图像处理方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Image Fusion-Based Adaptive Regularization for Image Expansion;Joonki Paik et al;《The International Society For Optical Engineering》;20030731;1-12 *
二值图像形态操作与结构元素分析;杜廷娜;《重庆交通学院学报》;20060228;第25卷(第1期);162-164 *
基于FPGA_SOPC的灰度图像腐蚀膨胀运算的设计与实现;石伟等;《教育部中南地区高等学校电子电气基础课教学研究会第二十届学术年会论文集》;20100731;741-744 *

Also Published As

Publication number Publication date
CN108460784A (zh) 2018-08-28

Similar Documents

Publication Publication Date Title
CN109886395B (zh) 一种面向多核图像处理卷积神经网络的数据读取方法
US20060002471A1 (en) Motion estimation unit
CN108460784B (zh) 一种基于fpga的灰度及二值图像膨胀腐蚀处理方法
CN109743562B (zh) 基于Census算法的匹配代价计算电路结构及其工作方法
CN109671042B (zh) 基于fpga形态学算子的灰度图像处理系统及方法
US10169295B2 (en) Convolution operation device and method
CN109886866B (zh) 一种自适应仿射变换处理方法及装置
US20130307859A1 (en) Processor, System, and Method for Efficient, High-Throughput Processing of Two-Dimensional, Interrelated Data Sets
CN114092338B (zh) 图像缩放快速计算方法
CN108764182B (zh) 一种优化的用于人工智能的加速方法和装置
CN108920097B (zh) 一种基于交织存储的三维数据处理方法
WO2021070303A1 (ja) 演算処理装置
CN110322389B (zh) 池化方法、装置及系统、计算机可读存储介质
WO2023071673A1 (zh) 卷积特征缓存方法、调用方法、装置、设备、介质及产品
CN110148101B (zh) 一种基于fpga的低缓存改进型直方图均衡方法及系统
CN110569684B (zh) 一种小容量缓存的图像二值化方法
CN111783979B (zh) 一种基于ssim算法的图像相似度检测硬件加速器vlsi结构
KR20050072070A (ko) 데이터 저장 장치, 데이터 저장 제어 장치, 데이터 저장제어 방법 및 데이터 저장 제어 프로그램
CN111191780B (zh) 均值池化累加电路、装置以及方法
CN110264488B (zh) 一种二值图像边缘提取装置
KR102032892B1 (ko) 반도체 장치 및 그 동작 방법
JP7234000B2 (ja) 2次元画像をアフィン変換するための画像データ処理装置
CN112837256B (zh) 一种用于Harris角点检测的电路系统及检测方法
JP4687108B2 (ja) データ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラム
CN106940875B (zh) 灰度图像背景处理建表方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Two, H2 building, No. 2800, Wangjiang Industrial Park, 230088 Wangjiang West Road, hi tech Zone, Anhui, Hefei, 533

Applicant after: Hefei Xinqi microelectronics equipment Co., Ltd

Address before: Two, H2 building, No. 2800, Wangjiang Industrial Park, 230088 Wangjiang West Road, hi tech Zone, Anhui, Hefei, 533

Applicant before: HEFEI XINQI MICROELECTRONIC EQUIPMENT CO., LTD.

GR01 Patent grant
GR01 Patent grant