1.背景介绍基于二值图像的滤波算法,即形态学滤波,常用于图像目标采集的预处理。
不同的使用场景涉及诸如腐蚀,膨胀以及打开和关闭操作之类的处理。
在实际使用中,对于不同的分辨率大小和模板窗口大小,必须修改代码以适应不同的场景,尤其是当模板窗口相对较大时,代码重写的工作量非常大。
因此,为了减少开发时间,本文实现了通用算法IP,其仅需修改模板窗口大小和工作模式(腐蚀或扩展)参数即可达到“自适应”的目的。
并避免重复低效的工作。
2.形态过滤原理形态过滤包括两个操作:腐蚀和膨胀。
首先,侵蚀的核心思想是在图像像素之间执行逻辑AND操作。
简而言之,当包含当前像素的结构单元的像素值全部为“ 1”时,输出要处理的目标像素。
如果使用窗口来实现腐蚀操作,如图2.1所示:图2.1腐蚀效果示意图腐蚀的作用:腐蚀在形态上可以去除图像中对象的边界点,并去除图像上的物体。
图像中的毛刺或小突起小于结构元素。
另外,结构元件越大,腐蚀面积越大。
因此,腐蚀操作可用于区分小区域和非目标区域。
扩散的核心思想是在像素之间执行逻辑或运算,即每个输入像素都替换为输出图像中结构单元的形状。
当结构单元中任何像素的灰度值为“ 1”时,则输出窗口中的像素全部为“ 1”,并且此时要处理的目标像素被输出。
该公式可以表示为:如果使用窗口来实现扩展操作,如图2.2所示:图2.2扩展效果示意图扩展效果:扩展操作可以填充图像中的孔。
小于结构元素和图像边缘的一些小凹陷。
在目标区域被腐蚀之后的扩展操作是所谓的开放操作。
在选定的目标区域上执行膨胀操作然后进行腐蚀操作是所谓的封闭操作。
3.形态学滤波算法的FPGA硬件实现FPGA硬件实现示意图,如下图所示。
该算法的输入和输出接口信号采用标准的VGA时序接口,即行和场信号,数据和数据使能信号。
算法模板有两个主要的输入参数。
Win_SIZE表示窗口大小,WORK_MODE表示腐蚀或扩展模式。
根据需要配置模板大小和工作模式。
由于行缓冲区基于RAM,因此本文设计的ram大小为2048x15,深度2048表示支持的最大分辨率,数据位宽度为15bit表示支持的最大模板窗口大小为15x15。
也可以根据需要。
修改ram规范,无需更改其他逻辑。
最后,当需要打开或关闭操作时,只需串联两个算法IP并配置不同的参数即可。
4.仿真验证本节主要构建一个视频流Modelsim仿真平台。
在基于FPGA的视频图像算法开发过程中,必须模拟视频序列以验证算法并有效地使用Matlab工具来“分解”图像。
静态图片。
将其保存为txt文本,以供Modesim读取,然后“重现”。
通过Matalb处理的文本。
3×3腐蚀模拟结果:9×9腐蚀模拟结果:5×5膨胀模拟结果:15×15膨胀模拟结果:原始标题:基于Verilog的“自适应”的实现。
形态过滤算法文章来源:[微信官方帐号:FPGA自学室]欢迎大家关注!请指出转载文章的来源。