FPGA图像处理入门 ZYNQ7020 图像中值膨胀腐蚀滤波


前言

图像处理的三种滤波 中值滤波应用较为广泛 综合膨胀和腐蚀可以实现边缘检测

一、中值滤波

1.原理

用于去除椒盐噪声
在这里插入图片描述
因为黑白像素为0或255 利用3×3矩阵构造可以排序 消除噪声 对于较大的噪声 可以改用5×5矩阵
注意:后续技术分享,第一时间更新,以及缩放、白平衡及各种滤波算法完整代码,将在VX群发布,请添加VX:Zeus20010223

2.fpga实现

通过该模块实现排序算法 总共消耗4个周期得到 目标中值

sort_3	u1_sort_3 (
	.clk		(clk		),
	.rst_n		(rst_n		),	
	.data1		(matrix11	), 
	.data2		(matrix12	), 
	.data3		(matrix13	),
	.min_data   (min_data1	),
	.mid_data	(mid_data1	),
	.max_data	(max_data1	)	
);

使用img_gen模块模拟时序

3.仿真验证

可以看到从第一个矩阵构建完成到输出结果共耗费3个周期 与代码逻辑一致
在这里插入图片描述
此后 连续输出6个周期的中值 240 与matlab结果一致
在这里插入图片描述
再看max_sub和min_sub的值 均为0 说明fpga与matlab处理结果一致

在这里插入图片描述
效果图 可以看到图片变模糊了 去除了一些椒盐噪声

二、膨胀滤波

1.原理

用于去除白点
在这里插入图片描述
因为白像素为255 利用3×3矩阵构造可以排序 消除噪声 对于较大的噪声 可以改用5×5矩阵

2.fpga实现

通过该模块实现排序算法 总共消耗2个周期得到 最小值

sort_3	u4_sort_3 (
	.clk		(clk			),
	.rst_n		(rst_n			),		
	.data1		(min_data1		), 
	.data2		(min_data2		), 
	.data3		(min_data3		),
	.min_data   (target_data	),
	.mid_data	(				),
	.max_data	(				)
);

使用img_gen模块模拟时序

3.仿真验证

与matlab结果一致
在这里插入图片描述
在这里插入图片描述
效果图 可以看到去除了白点噪声

三、腐蚀滤波

与膨胀滤波相反 去除黑点噪声 其他略

总结

主要应用img_gen视频流 修改图像处理模块 中值滤波涉及到排序算法 用sort模块实现排序

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值