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

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

5.算法完整程序工程


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.算法理论概述

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

原理

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

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

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

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

5.算法完整程序工程

OOOOO

OOO

O

相关推荐
QQ__17646198244 小时前
Matlab安装tdms插件
开发语言·matlab·tdms插件
天`南7 小时前
【三维异构Dvhop定位】基于灰狼优化算法的三维异构Dvhop定位算法【Matlab代码#93】
matlab·dvhop·异构无线传感器网络
小白狮ww7 小时前
Retinex 算法 + MATLAB 软件,高效率完成图像去雾处理
开发语言·人工智能·算法·matlab·自然语言处理·图像识别·去雾处理
机器学习之心11 小时前
区间预测 | QRTCN时间卷积神经网络分位数回归时间序列区间预测模型(Matlab完整源码和数据)
matlab·回归·cnn·分位数回归·时间卷积神经网络·qrtcn·区间预测模型
Matlab光学1 天前
MATLAB仿真:Ince-Gaussian光束和Ince-Gaussian矢量光束
开发语言·算法·matlab
东雁西飞1 天前
MATLAB 控制系统设计与仿真 - 33
开发语言·算法·matlab·机器人·自动控制
落雨封海1 天前
Matlab基础知识与常见操作【无痛入门】
matlab
唯_ww1 天前
CST学习笔记(三)MATLAB与CST联合仿真-远场数据批量导出
matlab·电磁学
机器学习之心2 天前
回归预测 | Matlab实现NRBO-Transformer-BiLSTM多输入单输出回归预测
matlab·回归·多输入单输出回归预测·transformer·bilstm·nrbo
电科_银尘2 天前
【Matlab】-- 基于MATLAB的美赛常用多种算法
算法·数学建模·matlab