0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA视频图像算法开发

FPGA之家 来源:FPGA自习室 作者:FPGA自习室 2022-08-17 09:09 次阅读

一、背景介绍

基于二值图像的滤波算法即形态学滤波,在图像目标采集的预处理中经常被使用到,针对不同的使用场景涉及到腐蚀、膨胀、开闭运算等处理。实际使用中对于不同的分辨率大小以及模板窗口大小,都要进行代码的修改去适应不同的场景,特别是模板窗口比较大时,代码改写工作量就很大。因此,为了减少开发时间,本文实现了一个通用的算法IP,只需要修改模板窗口大小和工作模式(腐蚀or膨胀)参数即可,达到“自适应”目的,避免重复低效的工作。

形态学滤波原理

形态学滤波由腐蚀和膨胀两种操作组成。首先,腐蚀(Erosion)的核心思想是图像像素之间进行逻辑与运算,简单来说,当一个包含当前像素的结构单元的像素值都为“1”时输出待处理的的目标像素。

若采用窗口实现腐蚀操作,如图2.1所示:

366f94ac-1dc1-11ed-ba43-dac502259ad0.png

图2.1腐蚀效果示意图

腐蚀的作用:在形态学中的腐蚀可以去除图像中的物体边界点,清除图像中比结构元素小的毛刺或者小突起,此外,结构元素越大,腐蚀的面积就越大。所以,可以使用腐蚀运算操作小区域的非目标区域区分。

膨胀的核心思想是像素之间进行逻辑或运算,也就是说每个输入像素在输出图像中被替换成结构单元的形状。当结构单元中任何一个像素的灰度值为“1”时,那么输出窗口内的像素都为“1”,此时输出待处理的目标像素。公式可以表示为:

若采用窗口实现膨胀操作,如图2.2所示:

36865372-1dc1-11ed-ba43-dac502259ad0.png

图2.2膨胀效果示意图

膨胀的作用:膨胀运算可以填充图像中小于结构元素的孔洞以及图像边缘部分的一些小凹陷。对于目标区域腐蚀后再膨胀操作就是所谓的开运算。对所选定的目标区域先进行膨胀操作然后再进行腐蚀操作就是所谓的闭运算。

三、FPGA硬件实现

形态学滤波算法的FPGA硬件实现原理图,如下图所示。算法的输入输出接口信号采用标准的 VGA时序接口,即行场信号、数据和数据使能信号。算法模板输入参数主要有两个,Win_SIZE 表示窗口大小,WORK_MODE 表示工作在腐蚀还是膨胀模式,根据需要配置自己想要的模板大小和工作模式。

由于行缓存是基于RAM的实现的,本文设计的ram的规格大小是为2048x15,

深度2048 表示支持的最大分辨率,数据位宽为15bit表示支持的最大的模板窗口大小为15x15,也可以根据需要修改ram规格,其他逻辑不需要改动。

3691dcce-1dc1-11ed-ba43-dac502259ad0.png         最后,需要开运算或者闭运算时,只需要把两个算法IP串联起来,配置不同的参数即可。

四、仿真验证

本节主要搭建一个视频流Modelsim仿真平台,在基于FPGA视频图像算法开发过程中,有必要interwetten与威廉的赔率体系 一个视频时序,用来验证算法,并有效的利用Matlab工具把静态图片“打散”保存到txt文本里,供Modesim读取,然后通过Matalb“复现”处理后的文本。

3x3腐蚀仿真结果:


36aa9584-1dc1-11ed-ba43-dac502259ad0.png

9x9腐蚀仿真结果:

36bb3e66-1dc1-11ed-ba43-dac502259ad0.png

5x5膨胀仿真结果:

36ca45aa-1dc1-11ed-ba43-dac502259ad0.png 15x15膨胀仿真结果:

36e05462-1dc1-11ed-ba43-dac502259ad0.png

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1614

    文章

    21432

    浏览量

    596639
  • 视频图像
    +关注

    关注

    0

    文章

    47

    浏览量

    17419
  • 硬件
    +关注

    关注

    11

    文章

    3009

    浏览量

    65421
  • 代码
    +关注

    关注

    30

    文章

    4614

    浏览量

    67452

原文标题:基于Verilog的“自适应”形态学滤波算法实现

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA图像处理之CLAHE算法

    FPGA图像处理--CLAHE算法(一)中介绍了为啥要用CLAHE算法来做图像增强。
    的头像 发表于 01-04 12:23 1835次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>图像</b>处理之CLAHE<b class='flag-5'>算法</b>

    FPGA图像视频处理培训

     FPGA图像视频处理培训课程目标:  1、深入了解JPEG标准和H.264标准协议;  2、掌握FPGA图像
    发表于 07-16 14:05

    基于FPGA的HDTV视频图像灰度直方图统计算法设计

    本文介绍了如何在FPGA 中利用Block RAM 的特殊结构实现HDTV 视频增强算法中灰度直方图统计。灰度直方图统计灰度直方图统计是图像处理过程中很常用的一个步骤,简单来讲,就是对
    发表于 05-14 12:37

    Verilog图像算法开发

    Verilog HDL数字系统设计篇教程预览地址:链接:http://pan.baidu.com/s/1pK8TlcJ密码:ojrjETree的开发开发了下面17种verilog图像算法
    发表于 11-28 22:20

    Modelsim 与Matalb模拟视频流仿真

    ` Modelsim 与Matalb模拟视频流仿真 本章节主要搭建一个视频流Modelsim仿真,在基于FPGA视频图像
    发表于 03-03 18:11

    FPGA图像视频套件开发指南Ver2.01

    特权VIP FPGA图像视频套件开发指南Ver2.01 (by特权同学)Xilinx FPGA入门连载 特权VIP
    发表于 03-22 06:35

    一种基于FPGA的实时视频图像处理算法研究与实现

    摘要为有效提高视频监控应用领域中多屏幕画面显示的清晰度、分辨度等问题,提出了一种基于FPGA的实时视频图像处理算法。文中介绍了系统的整体结构
    发表于 06-28 07:06

    【米尔MYD-C7Z020开发板试用申请】基于zynq的监控视频图像拼接算法

    手把手教你设计人工智能芯片及系统(全阶设计教程+AI芯片FPGA实现+开发板)详情链接:http://url.elecfans.com/u/c422a4bd15项目名称:基于zynq的监控视频
    发表于 10-30 17:03

    ECT图像重建算法FPGA实现

    ECT图像重建算法FPGA实现 ECT图像重建算法FPGA实现
    发表于 11-19 14:59 1次下载

    采用多相位插值算法实现视频图像缩放及其在FPGA硬件平台的验证

    传统的插值算法视频图像缩放尤其是输出高分辨率的视频图像时,对细节方面的处理性能较差。采用多相位插值算法
    发表于 11-16 11:48 4830次阅读
    采用多相位插值<b class='flag-5'>算法</b>实现<b class='flag-5'>视频</b><b class='flag-5'>图像</b>缩放及其在<b class='flag-5'>FPGA</b>硬件平台的验证

    基于Xilinx FPGA视频图像采集系统

    FPGA仿真篇-使用脚本命令来加速仿真二 基于FPGA的HDMI高清显示借口驱动 基于FPGA灰度图像高斯滤波算法的实现
    发表于 02-20 20:44 1343次阅读
    基于Xilinx <b class='flag-5'>FPGA</b>的<b class='flag-5'>视频</b><b class='flag-5'>图像</b>采集系统

    FPGA视频教程之FPGA视频图像处理领域的应用视频资料说明

    本文档的主要内容详细介绍的是FPGA视频教程之FPGA视频图像处理领域的应用视频资料说明。
    发表于 04-04 16:40 35次下载
    <b class='flag-5'>FPGA</b><b class='flag-5'>视频</b>教程之<b class='flag-5'>FPGA</b>在<b class='flag-5'>视频</b><b class='flag-5'>图像</b>处理领域的应用<b class='flag-5'>视频</b>资料说明

    如何在MATLAB中开发基于像素的视频图像处理算法

    此讲座将结合新产品的特性,重点介绍如何在MATLAB®中开发基于像素流的视频图像处理的算法,并通过HDL代码产生的威廉希尔官方网站 快速在FPGA上实现
    的头像 发表于 08-29 06:08 2699次阅读
    如何在MATLAB中<b class='flag-5'>开发</b>基于像素的<b class='flag-5'>视频</b>和<b class='flag-5'>图像</b>处理<b class='flag-5'>算法</b>

    基于FPGA而实现的视频图像处理算法

    为有效提高视频监控应用领域中多屏幕画面显示的清晰度、分辨度等问题,提出了一种基于FPGA的实时视频图像处理算法
    发表于 09-13 14:53 3583次阅读

    探究FPGA图像视频加密解密系统

    器件凭借高带宽全并行的特性可以实现高速运算和视频采集,能够满足视频的实时性要求,但开发难度较大。 ARM 器件具备易于开发 的优势,但其运算速度低。
    的头像 发表于 11-01 11:35 3011次阅读
    探究<b class='flag-5'>FPGA</b>的<b class='flag-5'>图像</b>及<b class='flag-5'>视频</b>加密解密系统