闲庭信步使用图像验证平台加速FPGA的开发:第二十四课——图像直方图均衡化的FPGA实现

 (本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击top_tb.bat文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注知识星球:成工fpga,https://t.zsxq.com/DMeqH,关注即送200GB学习资料,链接已置顶!)

直方图的均衡化上个系列也有详细的讲解,本课主要完成图像直方图均衡化的FPGA实现。

我们先来分析一下,实现图像直方图的均衡需要处理几帧图片?第一帧图片完成直方图统计,在第一帧和第二帧图像之间完成直方图数据的读取,同时完成直方图数据的均衡化和均衡化的存储。第二帧图像就可以根据存储的均衡化数据完成整幅图像的均衡化,所以要完成图像的均衡化,需要两帧图像,视频流水起来,就是后一帧图像根据前一帧图像完成图像的直方图均衡化。

那我们再来分析一下,如果要对均衡化的图像再进行直方图统计,需要处理几帧图像?上面我们分析第二幅图像完成图像的均衡化,在第二幅图像均衡化的过程中,可以对均衡化的图像数据进行直方图的统计,那就是在第二幅图像结束的时候完成图像均衡化的直方图统计,如果想把直方图叠加到均衡化后的图片上,那就要在第三帧图像上完成。

在\src\hist文件夹下新建hist_equalization.sv文件,用来实现图像的直方图数据的均衡化,均衡化就是将小于等于当前标号的直方图数据求和,其实第一个均衡化的数据就是第一个直方图的数据,第二个均衡化的数据就是第一个和第二个直方图数据的和,第三个均衡化的数据就是前三个直方图数据的和......最后一个均衡化的数据所有直方图数据的和。如下,52-58行求和的运算。

每次求和完成一个直方图均衡化数据的计算,然后直接对均衡化后的数据进行归一化处理,归一化处理是将数据映射到0-255区间。归一化因子是699,计算公式是256*1024*1024/(H_ACTIVE*V_ACTIVE),数据放大了2^20倍,所以最终的结果将低20位直接舍弃,也就是结果右移20位。归一化后的均衡化数据存放到数组中,下一帧数据的每个像素值作为数组的地址读出其中的值,完成下一帧图像的均衡化,这个超过其实和gamma矫正完全一样。

在top文件中例化了rgb2ycbcr,hist_statistics,hist_equalization,ycbcr2rgb,hist_norm,hist_mem,plot_hist等模块,如下所示。先将RGB图像转成灰度图像,对灰度图像进行图像的直方图统计和均衡,再将均衡后的灰度图像转换回RGB图像,同是对均衡后的灰度图像进行直方图统计。

在tb_image_sim文件中的第二个initial块中,将图像测试平台和FPGA硬件仿真的结果保存并比对,需要注意一点,要完成两帧图像的处理,通过wait((frame_cnt == FRAME_NUM) & frame_done)来实现,这儿FRAME_NUM是2。

双击sim文件夹下的top_tb.bat文件,完成系统的自动化仿真。

可以看到在modelsim的Transcript有如下的打印信息,图像测试平台和FPGA硬件仿真的结果一致。

打开img文件夹,也可以看到图像测试平台和FPGA硬件仿真的结果是一致的(no_seq*是图像测试平台处理后的图片,seq*是FPGA硬件仿真处理后的结果)。

同时也可以看一下图像释放图均衡前后的效果图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/90032.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW 2025安装包| 免费免激活版下载| 附图文详细安装教程

[软件名称]:LabVIEW 2025 [软件大小]:13 G [系统要求]:支持Win7及更高版本 [下载通道]:夸克网盘 [下载链接]: https://pan.quark.cn/s/7e9527cc06a3 (建议用手机保存到网盘后,再用电脑下载) 更多免费软件&a…

如何实现泵站的无人值守:御控智慧水务平台

在城乡供水、农田灌溉、工业循环水等场景中,泵站作为核心动力设施,其运行效率直接影响水资源调配的稳定性。然而,传统泵站管理长期面临三大痛点:人力成本高昂:偏远地区泵站需24小时值守,单站年均人力成本超…

深度学习篇---车道线循迹

要实现基于深度学习的双车道线(黄色车道线)循迹(通过预测四个轮子的转速实现自主控制),需要从数据采集、模型设计、训练策略、环境适应等多维度系统优化。以下是具体方案及需要注意的关键事项,旨在提升精准…

JavaScript,发生异常,try...catch...finally处理,继续向上层调用者传递异常信息

JavaScript中,‌异常(Exception)和错误(Error) JavaScript 是一种解释型语言,通常在浏览器中通过JavaScript引擎执行。最著名的两个引擎是:SpiderMonkey(由 Mozilla Firefox 使用&a…

SpringMVC快速入门之启动配置流程

SpringMVC快速入门之启动配置流程一、SpringMVC启动的核心流程二、环境准备与依赖配置2.1 开发环境2.2 Maven依赖配置三、初始化Servlet容器:WebApplicationInitializer3.1 实现WebApplicationInitializer3.2 配置编码过滤器(解决中文乱码)四…

ArcGIS水文及空间分析与SWMM融合协同在城市排水防涝领域中的应用

随着计算机的广泛应用和各类模型软件的发展,将排水系统模型作为城市洪灾评价与防治的技术手段已经成为防洪防灾的重要技术途径。将创新性融合地理信息系统(GIS)的空间分析能力与暴雨雨水管理模型(SWMM)的水动力计算优势…

PHICOMM(斐讯)N1盒子 - Armbian25.05(Debian 12)刷入U盘/EMMC

PHICOMM(斐讯)N1盒子 - Armbian25.05(Debian 12)刷入U盘/EMMC 文章目录PHICOMM(斐讯)N1盒子 - Armbian25.05(Debian 12)刷入U盘/EMMC前言1. 确保固件版本为2.192. 刷系统到U盘3. 启动U盘系统4. U盘系统写入EMMC5. 关机拨U盘6. 重新上电环境: 系统:Armbi…

《计算机网络基础知识全解析:从协议模型到通信实践》

《计算机网络基础知识全解析:从协议模型到通信实践》 在数字化时代,计算机网络是信息传递的基石,从日常浏览网页到企业数据交互,都离不开网络协议的规范与支撑。本文将系统梳理计算机网络的核心知识,从通信模型到具体协…

【补题】Codeforces Global Round 26 E. Shuffle

题意:给出一棵树,按照以下方式操作 对于当前的所有任意子树,选出任何一个点从中删除,然后作为新子树的根插入到新的树中,以此递归往复,直到原来的树中节点全部进入新树,问新树最多有多少个叶子节…

金仓数据库风云

O 记我用了这么多年,我最有发言权,我可不敢替,你们谁能搞定,谁上。” 老邓在会上,狠狠甩了一句气话。老邓(邓铭),某大型期货交易所信息化主管,数据库老司机。 作为圈里最…

阿里云宝塔Linux面板相关操作记录

1、清空nginx缓存使用Nginx时,静态图片文件会出现缓存,所以需要清空缓存,方法如下:sudo rm -rf /www/server/nginx/proxy_cache_dir/*2、Windows启动spring boot jar脚本echo off setlocal enabledelayedexpansion:: 配置项目名 s…

Kotlin伴生对象

你已经知道如何为类创建单例对象(singleton)。不过,在很多情况下,你只需要为某个类维护一个单例,这时候使用类的完整名字会显得冗长。比如,你可能只需要存储一个公共的属性。这种情况下,可以用 …

4G车载录像机的作用详解:提升行车安全与智能管理的核心技术

1. 引言随着物流运输、公共交通、特种车辆等行业对安全与管理需求的提升,4G车载录像机已成为现代车辆智能化管理的重要组成部分。它不仅具备传统行车记录仪的录像功能,还结合4G无线通信、AI智能分析、GPS定位、云存储等技术,实现远程监控、实…

技术与情感交织的一生 (十)

目录 笑傲江湖 上 恨 嫌隙 挣扎 救难 论道 取巧 联手 入魔 决裂 治伤 聚气 倾心 笑傲江湖 上 恨 身边的许多朋友都是金庸武侠迷,我也是其中之一。有人说,我的技术像 “任我行” ,“吸星大法” 学到最后显得不伦不类&#xf…

架构进阶——解读集团IT管控治理体系总体规划【附全文阅读】

集团IT管控治理体系正步入高质量发展阶段,旨在重塑信息化管理价值,解决集团化管理的核心挑战。首要问题是纵向与横向的协同管控,需明确各层级在集团战略决策中的角色与责任,促进跨部门、跨子公司的高效协同。高管激励机制与人才梯…

亚马逊自养号测评实战指南:从环境搭建到安全提排名

在亚马逊平台上,自养号测评系统的成败差异主要源于技术合规性、操作精细度和风控策略的差异。以下是关键因素的分析:🔒 一、环境隔离与伪装技术底层环境稳定性成功案例:采用独立服务器硬件参数伪装(如唯一MAC地址、IME…

CSS中的transform

在 CSS 中,transform 是用于用于用于对元素进行几何变换的属性,可实现旋转、缩放、平移、倾斜等效果,且不会影响其他元素的布局(不会触发重排)。以下是其核心用法和特性: 1. 基本语法 element {transform: …

MyBatis拦截器插件:实现敏感数据字段加解密

文章目录一、写在前面二、编码实现1、注解2、拦截器插件3、配置插件4、实体类5、测试三、扩展1、优化点一、写在前面 日常开发中,经常有一些敏感数据,直接写入数据库的话,很容易泄露。 本文基于mybatis拦截器插件,实现敏感数据的…

C++_Hello算法_队列

队列(queue)是一种遵循先入先出规则的线性数据结构。顾名思义,队列模拟了排队现象,即新来的人不断加入队列尾部,而位于队列头部的人逐个离开。 如图 5-4 所示,我们将队列头部称为“队首”,尾部…

LeetCode 1.

问题描述 俩数之和: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按…