FPGA图像处理入门 ZYNQ7020 均值滤波


前言

介绍在fpga中实现3×3矩阵均值滤波

一、均值滤波是什么?

均值滤波主要为了去除椒盐噪声
5×5矩阵实例
在这里插入图片描述
对矩阵内像素进行相加求均值 放在矩阵中心作为新矩阵

二、实现流程

使用两个fifo进行流水线处理 缓存两行数据 fifo先进先出 第一行先缓存 进入第一个fifo 缓存完之后 进入第二个fifo
等到第三行数据进来之后 进入矩阵寄存器进行缓存求和操作
在这里插入图片描述
矩阵部分实现代码

always@(posedge clk)
	if(!rst_n)
		begin
			{matrix11, matrix12, matrix13} <= 24'd0;
			{matrix21, matrix22, matrix23} <= 24'd0;
			{matrix31, matrix32, matrix33} <= 24'd0;
		end
	else if(data_de==1'b1)
		begin
			{matrix11, matrix12, matrix13} <= {matrix12, matrix13, row1_data};
			{matrix21, matrix22, matrix23} <= {matrix22, matrix23, row2_data};
			{matrix31, matrix32, matrix33} <= {matrix32, matrix33, row3_data};
		end
	else
		begin
			{matrix11, matrix12, matrix13} <= 24'd0;
			{matrix21, matrix22, matrix23} <= 24'd0;
			{matrix31, matrix32, matrix33} <= 24'd0;
		end		


fifo部分实现代码

fifo_matrix_buf u1_fifo_matrix_buf (
  .rst			(~rst_n			),
  .wr_clk		(clk			), 
  .rd_clk		(clk			), 
  .din			(row3_data		),    
  .wr_en		(wr_en			),  
  .rd_en		(row2_rd		),  
  .dout			(row2_data		),   
  .full			(				),   
  .empty		(u1_empty		)	   
);

fifo_matrix_buf u2_fifo_matrix_buf (
  .rst			(~rst_n			),
  .wr_clk		(clk			), 
  .rd_clk		(clk			), 
  .din			(row2_data		),    
  .wr_en		(wr_en			),  
  .rd_en		(row2_rd		),  
  .dout			(row1_data		),   
  .full			(				),   
  .empty		(u2_empty		)	   
);

不用shift ram是因为ip相对而言是黑盒子 而且能修改的部分较少

3×3矩阵需要进行除法 除9操作 消耗资源过大 先对1/9扩大 再截位操作 完成除法
部分实现代码

always@(posedge clk or negedge rst_n)
	if(!rst_n)
		pre_ave_data0 <= 'd0;
	else  if(matrix_de_r[1]==1'b1)
		pre_ave_data0 <= add_line*7282;
	else
		pre_ave_data0 <= 'd0;	
	
assign pre_ave_data = pre_ave_data0[23:16];

整个流程用img_gen读取灰度txt 然后进行矩阵缓存 均值操作 仿真输出均值后的txt

三、仿真验证

在这里插入图片描述
可以看到先缓存两行数据 等到第三行数据进来进行处理

在这里插入图片描述
从这个周期开始完成第一个矩阵的构建 随后滑动窗口

matlab验证

在这里插入图片描述

总结

使用截位操作完成除法 使用fifo完成矩阵流水线构建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值