基于FPGA自适应形态学算子的二值图像处理方法与流程

文档序号:14038004阅读:445来源:国知局
基于FPGA自适应形态学算子的二值图像处理方法与流程

本发明属于图像处理技术领域,更进一步涉及图像数据处理技术领域中的一种基于现场可编程门阵列fpga(field-programmablegatearray)的自适应形态学算子的数字图像处理方法。本发明可以应用于通信、气象生物、军事、机器人视觉、医学等技术领域中来解决抑制噪声、特征提取、边缘检测、图像分割、形状识别、纹理分析、图像恢复与重建、图像压缩等数字图像处理问题。



背景技术:

在这个信息的时代,数字图像作为人类感知世界的视觉基础,是人类获取信息、表达信息和传递信息的重要手段,在科研、工业等各个领域都有相当广泛的应用。数学形态学作为一门新兴的数字图像处理与分析学科,其基本理论和方法已经广泛应用于数字图像处理的各个领域,如图像预处理、抑制噪声、特征提取、目标检测、边缘检测、图像分割、形状识别、纹理分析、图像恢复与重建、图像压缩等数字图像处理问题。因此,研究数学形态学算子与fpga的结合以便于形态学在数字图像处理领域的应用尤为重要。

陈鑫元、李筠、杨海马、宋佳、邵璐先在其发表的论文“自适应阈值图像二值化及形态学处理的fpga实现”(《电子测量技术》2016年07期第67~71页)中提出一种运用改进的自适应阈值sobel算法实现对图像的二值化,再进行形态学的处理的方法。该方法的实现过程为:首先是原始图像的采集、色彩格式转换、灰度处理、边缘检测;其次,运用中值滤波和加权平均法实现自适应阈值图像二值化,最后再运用形态学方法对二值化后图像做进一步处理,实现轮廓的更加有效的提取,并通过vga接口实现显示。该方法存在不足之处是:在运用形态学方法对二值图像做进一步处理时,不能更好的保留原图像的特点。

南京理工大学在其申请的专利文献“一种基于fpga的红外小目标检测方法及系统”(专利申请号201410450244.x,公布号cn104240240a)中提出一种基于fpga的红外小目标检测方法。该方法的实现过程为,对采集的图像进行预处理,去噪、去盲元;提取头图像和尾图像;分别对头图像和尾图像进行杂波边缘滤波操作;对头图像和尾图像分别进行阈值分割操作,使图像二值化;对阈值分割后的头图像和尾图像中的目标进行形态学膨胀,获得轮廓较大的目标;将形态学膨胀后的头目标和尾目标合成获得完整的目标。该方法存在不足之处是:对目标进行形态学处理只实现了形态学的膨胀运算,但是单独使用一种算子一般不能消除小物体、在纤细点处分离物体、填充物体内细小空洞、连接邻近物体、平滑其边界等。

天津工业大学在其申请的专利文献“基于非线性结构张量的自适应类圆形结构元素构造形态学算子的方法”(专利申请号201610805163.6,公布号cn106355600a)中提出一种基于非线性结构张量的自适应类圆形结构元素构造形态学算子的方法。该方法的实现过程为,非线性结构张量;测量参数;基于非线性结构张量的自适应椭圆结构元素的构建;采用随机分形插值法提高图像分辨率;提高自适应椭圆结构元素的分辨率;自适应膨胀、腐蚀、开运算和闭运算的构造;自适应击中击不中(hitormiss)变换。该方法存在不足之处是:只构造了应用于灰度图像的自适应类圆型结构元素,利用自适应类圆型构造自适应腐蚀、膨胀、开、闭及击中击不中变换等形态学算子,只在软件上实现这些算子,没有在硬件上实现的速度快。



技术实现要素:

本发明的目的在于克服上述现有技术的不足,提出了一种基于fpga自适应形态学算子的数字图像处理方法。本发明针对不同图像自身的特点,自适应的选取结构元素,实现自适应形态学算子的四种基本运算,并应用verilog语言在modelsim平台上将这四种基本运算在硬件fpga上实现,以达到自适应数学形态学在图像处理上的方便快捷的应用。

实现本发明的技术思路是:首先,获取一幅数字图像并进行形态学处理;其次,提取该图像二值化像素点;然后,自适应的选取结构元素;最后,用自适应结构元素对这些像素点进行膨胀运算、腐蚀运算、开运算和闭运算,得到输出波形图,得到处理后的图像。

实现本发明目的的具体步骤如下:

(1)输入含有志行远近四个字的一幅待处理二值图像;

(2)提取像素值:

(2a)利用matlab软件,提取含有志行远近四个字的一幅二值图像的所有像素点;

(2b)利用matlab软件,获取所有像素点的像素值;

(3)自适应选取结构元素:

(3a)从所有像素点中选取任一像素点作为中心像素点,得到中心像素点及其邻域的四个点共五个像素点组成的像素点组;

(3b)将所有像素点分成含有五个像素点的像素点组,获取所有像素点组中每个像素点的像素值;

(3c)根据每组像素点像素值中含有1的个数的五种情况,自适应的选取与每种情况对应一个结构元素;

(4)膨胀运算:

利用硬件描述语言,将与每一组像素点对应的一个结构元素作为形态学算子中的结构元素,对该结构元素与所有像素点做卷积,实现对含有志行远近四个字的一幅二值图像的膨胀运算,得到基于现场可编程门阵列fpga的膨胀运算后的像素点的像素值的仿真波形图;

(5)闭运算:

利用硬件描述语言,将与每一组像素点对应的一个结构元素作为形态学算子中的结构元素,对该结构元素与膨胀后的像素点做卷积,实现对含志行远近四个字的一幅二值图像的闭运算,得到基于现场可编程门阵列fpga的闭运算后的像素点的像素值的仿真波形图;

(6)腐蚀运算:

利用硬件描述语言,将与每一组像素点对应的一个结构元素作为形态学算子中的结构元素,对该结构元素与近字的所有像素点做卷积,实现对含有志行远近四个字的一幅二值图像的腐蚀运算,得到基于现场可编程门阵列fpga的腐蚀运算后的像素点的像素值的仿真波形图;

(7)开运算:

利用硬件描述语言,将每一组像素点对应的一个结构元素作为形态学算子中的结构元素,对该结构元素与腐蚀后的像素点做卷积,实现对含有志行远近四个字的一幅二值图像开运算,得到基于现场可编程门阵列fpga的开运算后的像素点的像素值的仿真波形图;

(8)转换为二值图像:

利用matlab软件,将得到的膨胀运算后的像素点的像素值转化为二值图像、腐蚀运算后的像素点的像素值转化为二值图像、开运算后的像素点的像素值转化为二值图像、闭运算后的像素点的像素值转化为二值图像;

(9)输出结果图:

(9a)输出基于现场可编程门阵列fpga的膨胀运算仿真波形图、基于现场可编程门阵列fpga的腐蚀运算仿真波形图、基于现场可编程门阵列fpga的开运算仿真波形图、基于现场可编程门阵列fpga的闭运算仿真波形图;

(9b)输出膨胀运算后的二值图像、腐蚀运算后的二值图像、开运算后的二值图像、闭运算后的二值图像。

本发明与现有技术相比较,具有以下优点:

第一,由于本发明用自适应形态学算子对二值图像进行处理,克服了现有技术中无法应用自适应形态学算子处理二值图像的缺点,使得本发明具有了将自适应形态学算子应用于处理二值图像的优点。

第二,由于本发明在现场可编程门阵列fpga上实现了自适应形态学的膨胀运算、腐蚀运算、开运算和闭运算,克服了原有技术中只在软件中实现这些算子时速度较慢的缺点,使得本发明具有用自适应形态学处理二值图像时速度快的优点。

第三,由于本发明可以根据图像自身的特点,自适应选取结构元素,对图像进行形态学运算,克服了现有技术在运用形态学方法对二值图像做进一步处理时,不能更好的保留原图像的特点的缺点,使得本发明具有使处理后的图像得到较好的处理效果,同时更好的保留原图像自身的特点的优点。

第四,由于本发明对二值图像进行自适应形态学的膨胀运算、腐蚀运算、开运算和闭运算四种运算,克服了现有技术对二值图像仅进行一种运算,导致不能消除小物体、在纤细点处分离物体、填充物体内细小空洞、连接邻近物体、平滑其边界的问题,使得本发明具有既能更好的处理图像细节的问题,又能更多的保留原图像细节特点的优点。

附图说明

图1是本发明的流程图;

图2是本发明仿真实验得到的波形图;

图3是本发明仿真实验结果图。

具体实施方式

下面结合附图对本发明做进一步的描述。

参照图1,对本发明实现的具体步骤描述如下。

步骤1,输入含有志行远近四个字的一幅待处理二值图像。

步骤2,提取像素值。

利用matlab软件,提取含有志行远近四个字的一幅二值图像的所有像素点。

利用matlab软件,获取所有像素点的像素值。

步骤3,自适应选取结构元素。

从所有像素点中选取任一像素点作为中心像素点,得到中心像素点及其邻域的四个点共五个像素点组成的像素点组。

将所有像素点分成含有五个像素点的像素点组,获取所有像素点组中每个像素点的像素值。

根据每组像素点像素值中含有1的个数的五种情况,自适应的选取与每种情况对应一个结构元素。

所述的自适应选取的结构元素如下:

a.一组像素点的像素值中只有中心像素点的像素值为1对应的结构元素为:

b.一组像素点的像素值中中心像素点及其邻域的一个点的像素值为1对应的结构元素为:

c.一组像素点的像素值中中心像素点及其邻域的二个点的像素值为1对应的结构元素为:

d.一组像素点的像素值中中心像素点及其邻域的三个点的像素值为1对应的结构元素为:

e.一组像素点的像素值中中心像素点及其邻域的四个点的像素值为1对应的结构元素为:

步骤4,膨胀运算。

利用硬件描述语言,将与每一组像素点对应的一个结构元素作为形态学算子中的结构元素,对该结构元素与所有像素点做卷积,实现对含有志行远近四个字的一幅二值图像的膨胀运算,得到基于现场可编程门阵列fpga的膨胀运算后的像素点的像素值的仿真波形图。

步骤5,闭运算。

利用硬件描述语言,将与每一组像素点对应的一个结构元素作为形态学算子中的结构元素,对该结构元素与膨胀后的像素点做卷积,实现对含志行远近四个字的一幅二值图像的闭运算,得到基于现场可编程门阵列fpga的闭运算后的像素点的像素值的仿真波形图。

步骤6,腐蚀运算。

利用硬件描述语言,将与每一组像素点对应的一个结构元素作为形态学算子中的结构元素,对该结构元素与近字的所有像素点做卷积,实现对含有志行远近四个字的一幅二值图像的腐蚀运算,得到基于现场可编程门阵列fpga的腐蚀运算后的像素点的像素值的仿真波形图。

步骤7,开运算。

利用硬件描述语言,将每一组像素点对应的一个结构元素作为形态学算子中的结构元素,对该结构元素与腐蚀后的像素点做卷积,实现对含有志行远近四个字的一幅二值图像开运算,得到基于现场可编程门阵列fpga的开运算后的像素点的像素值的仿真波形图。

步骤8,转换为二值图像。

利用matlab软件,将得到的膨胀运算后的像素点的像素值转化为二值图像、腐蚀运算后的像素点的像素值转化为二值图像、开运算后的像素点的像素值转化为二值图像、闭运算后的像素点的像素值转化为二值图像。

步骤9,输出结果图。

输出基于现场可编程门阵列fpga的膨胀运算仿真波形图、基于现场可编程门阵列fpga的腐蚀运算仿真波形图、基于现场可编程门阵列fpga的开运算仿真波形图、基于现场可编程门阵列fpga的闭运算仿真波形图。

输出膨胀运算后的二值图像、腐蚀运算后的二值图像、开运算后的二值图像、闭运算后的二值图像。

下面结合仿真结果图对本发明效果做进一步的说明:

1、仿真实验条件:

本发明的仿真实验所使用的输入图像是大小为256×256像素,格式为bmp的二值图像。仿真实验中,本发明是在matlabr2012b软件和modelsim软件中编程实现的。

2.仿真内容:

用本发明自适应选取的结构元素和现有的尺寸为3×3的固定结构元素对输入的二值图像进行形态学运算,得到仿真结果。并比较对二值图像处理的效果。

3.仿真实验结果分析:

图2为本发明用自适应选取的结构元素对二值图像做形态学运算的仿真实验得到的波形图。其中,图2(a)是通过自适应形态学膨胀运算得到的波形图。图2(b)是通过自适应形态学腐蚀运算得到的波形图。图2(c)是通过自适应形态学开运算得到的波形图。图2(d)是通过自适应形态学闭运算得到的波形图。

图3为本发明用自适应选取的结构元素对二值图像做形态学运算的仿真实验结果图。其中,图3(a)是用固定结构元素对二值图像进行形态学膨胀运算结果图,图3(b)是用固定结构元素对二值图像进行形态学腐蚀运算结果图,图3(c)用固定结构元素对二值图像进行形态学开运算结果图,图3(d)用固定结构元素对二值图像进行形态学闭运算结果图。图3(e)是自适应形态学膨胀运算结果图,图3(f)是自适应形态学腐蚀运算结果图,图3(g)自适应形态学开运算结果图,图3(h)自适应形态学闭运算结果图。

用现有技术中的固定结构元素对二值图像进行膨胀运算得到的图3(a)与用本发明的方法对二值图像进行膨胀运算得到的图像3(e)对比可见,用本发明的方法得到的图像更亮,效果更好。用现有技术中的固定结构元素对二值图像进行腐蚀运算得到的图3(b)与用本发明的方法对二值图像进行腐蚀运算得到的图像3(f)对比可见,用本发明的方法的到的图像更好地保留了原图像的细节。用现有技术中的固定结构元素对二值图像进行开运算得到的图3(c)与用本发明的方法对二值图像进行开运算得到的图像3(g)对比可见,用本方法得到的图像更亮,同时更好的保留了原图像的细节。用现有技术中的固定结构元素对二值图像进行闭运算得到的图3(d)与用本发明的方法对二值图像进行闭运算得到的图像3(h)对比可见,用本方法得到的图像更好地保留了原图像的细节。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1