首页 > 其他分享 >基于FPGA的图像直方图均衡化处理verilog实现,包含tb测试文件和MATLAB辅助验证

基于FPGA的图像直方图均衡化处理verilog实现,包含tb测试文件和MATLAB辅助验证

时间:2024-06-06 20:25:21浏览次数:12  
标签:en FPGA 均衡化 image hist 直方图 灰度 图像 eq

1.算法运行效果图预览

FPGA的仿真图如下:

 

 

 

将数据导入MATLAB,对比结果如下:

 

 

2.算法运行软件版本

MATLAB2022a

 

vivado2019.2

 

3.部分核心程序

 

 

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2023/01/19 01:47:15
// Design Name: 
// Module Name: im2bw
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//
 
module im_hist(
			input i_clk,	 
			input i_rst,	 
			 
			input i_image_en,
			input i_image_end,
			input[7:0] i_image,			
 
			output o_en_eq,
			output[7:0] o_image_eq			
		);
		
 
wire      en_hist;
wire[7:0] w_hist;	
//直方图
hist hist_u(		
.i_clk      (i_clk),
.i_rst      (i_rst),
.i_image    (i_image[7:0]),
.i_image_en (i_image_en),
.i_image_end(i_image_end),
.o_hist_en  (en_hist),
.o_hist     (w_hist)
);		
 
//均衡输出
hist_eq	hist_eq_u(		
.i_clk      (i_clk),
.i_rst      (i_rst),
.i_hist_en  (en_hist),
.i_hist     (w_hist[7:0]),
.i_image_en (i_image_en),
.i_image    (i_image[7:0]),
.o_image_en (o_en_eq),
.o_image    (o_image_eq)
);		
 
endmodule
 
0X_036m

  

 

 

4.算法理论概述

       图像直方图均衡化是一种图像处理技术,旨在改善图像的全局对比度,通过重新分配图像的像素值,使得图像的直方图更加均匀。对于灰度的分布更加平滑,图像的视觉效果更佳。这一过程特别适用于那些整体偏暗或偏亮、对比度不足的图像。

 

原理

 

灰度直方程分布: 首先,计算原图的灰度直方程H(r),它表示每个灰度级的像素数。对于8位图像,灰度级从0到2555,H(i)表示灰度i的像素数。

 

累积分布: 接下来,计算累积分布H'(r),对H累加和,反映每个灰度累积像素数,直到当前灰度。

 

映射变换: 基于H',对每个像素灰度i映射到新的灰度j,使得新映射后的直方程更均匀。映射函数查找表实现此映射变换。

 

FPGA实现: 在硬件上,FPGA可编程增益器设置为每个通道的增益,对应映射表的增益系数。这样,原图像的每个像素经PGA后,通过查表映射到新的灰度,实现均衡化。

 

 

标签:en,FPGA,均衡化,image,hist,直方图,灰度,图像,eq
From: https://www.cnblogs.com/matlabworld/p/18235946

相关文章

  • 搬运文档+个人总结:FPGA和ZYNQ的上电启动时序(编辑中)
    ZYNQ的上电时序主要参考的UG585。PS_POR_B复位引脚解除断言后,硬件立即对引导带引脚进行采样,并可选择启用PS时钟PLL。然后,PS开始执行片上ROM中的BootROM代码以启动系统。POR会重置整个设备,而不会保存先前的状态。非POR类型的复位也会导致BootROM执行,但硬件不会对......
  • FPGA数字信号处理之:小波变换算法的实现
    一、定义        小波变换(wavelettransform,WT)是一种新的变换分析方法,它继承和发展了短时傅立叶变换局部化的思想,同时又克服了窗口大小不随频率变化等缺点,能够提供一个随频率改变的“时间-频率”窗口,是进行信号时频分析和处理的理想工具。它的主要特点是通过变换能够......
  • 含税仅498元起!复旦微ARM + FPGA SoC全国产工业核心板,性价比真高!
     ......
  • 基于FPGA的图像一维FFT变换IFFT逆变换verilog实现,包含tb测试文件和MATLAB辅助验证
    目录1.算法运行效果图预览2.算法运行软件版本3.部分核心程序4.算法理论概述5.算法完整程序工程1.算法运行效果图预览fpga仿真结果matlab调用FPGA的仿真结果进行图像显示2.算法运行软件版本vivado2019.2matlab2022a3.部分核心程序..................................
  • 【FPGA约束】如何对fpga进行io约束
            对FPGA进行I/O输入输出约束是确保设计满足电气和物理要求的重要步骤。以下是在Vivado环境中设置I/O约束的一般步骤:1.确定I/O引脚需求根据电路设计和FPGA芯片手册,确定每个I/O引脚的物理位置、电气特性(如电压标准)以及其他相关属性。2.使用Vi......
  • 提供高达 58 Gbps 的收发器速率、AGFA023R31C2E1VB/AGFA023R31C2I1V/AGFA023R31C2I2VB
    Agilex7FPGA产品系列包括业界最高性能的FPGA和SoC。英特尔Agilex7FPGA和SoC由高性能的F系列、I系列和M系列FPGA组成,为要求最高的应用提供了一系列的高级功能。•具有业界最高数据速率的收发器—高达116Gbps•业界首创的PCIExpress*(PCIe*)5.0和ComputeExpressLi......
  • 迪普微震撼发布:全新Xilinx Kintex-7 XC7K325 FPGA开发板!
    01产品概述本公司基于XilinxKintex-7系列的开发平台采用核心板加扩展主板的方式,方便用户对相关板卡的二次开发利用。其中,核心板包含一片芯片XC7K325T,使用FFG900封装,外挂4片512MB的高速DDR3芯片和1片256Mb的QSPIFlash芯片。在扩展板上我们设计了丰富的外围接口,比如PCIeG......
  • Stratix® V FPGA系列:5SGXEBBR3H43I3G、5SGXEBBR1H43C2G、5SGXEBBR2H43I2G为带宽应用
    StratixV系列StratixVFPGA采用新的存储器体系结构,降低延时,高效实现FPGA业界最好的系统性能。StratixVFPGA为网络设备生产商提供存储器接口解决方案,支持在互联网上迅速有效的传送视频、语音和数据。StratixVFPGA的主要性能突破包括:集成66个28Gbps串行收发器(每通道功耗仅20......
  • FPGA/ZYNQ:生成3x3矩阵
    一、简述在对图像进行处理时经常用到矩阵操作,包括sobel边缘检测、中值滤波、形态学等。本篇博客介绍一下用两个RAM生成3x3矩阵的方法。二、实现方法1.设计line_shift模块用于对三行数据进行寄存;2.设计一个产生3x3矩阵的模块。三、实现过程1.line_shift_RAM_24bit通过时钟......
  • 突破带宽瓶颈,5SGXEB6R3F43C3G、5SGXEB6R1F43C1G、5SGXEB6R2F43I3G、5SGXEB6R3F43C2G F
    StratixVFPGA的主要性能突破包括:集成66个28Gbps串行收发器(每通道功耗仅200mW)、提供1.6Tbps串行交换能力、提供12.5Gbps背板驱动和28Gbps芯片至芯片驱动能力、提供7组72位1600MbpsDDR3接口、以及提供1840GMACS或1000GFLOPS计算能力、业界第一款精度可变的DSP模块、53Mb嵌入式......