FPGA图像处理——单通道灰度转换

这篇博客介绍了作者在FPGA中实现RGB到灰度转换的过程,通过MATLAB进行算法设计验证,然后在Quartus上进行FPGA硬件实现。作者参考了多个资源,包括小梅哥、正点原子等,并分享了MATLAB代码及FPGA原理图设计,最终在开发板上验证了转换效果。
摘要由CSDN通过智能技术生成

在经历了基础部分的恶补后,这一篇可以算是进入一个新阶段的学习的起点,前段的从流水灯开始一直到SDRAM的串口传图,传图硬
件电路搭建完成以后,可以做一些简单的图像变换处理展示。同时,从这一段开始,也会同步开始zynq的学习。
经参考过一系列的资料(包括小梅哥,正点原子,fpga开源工作室,咸鱼FPGA等),FPGA图像处理部分自己主要从MATLAB和
quartus两个部分学习,在MATLAB上进行算法的设计验证,得到效果图:quartus上进行fpga的实现验证。这一部分是基于SDRAM串
口传图,在数据导出的最后一部分对图像数据进行处理,也算是信号处理的开始吧。

星辰大海,就此起航!

请添加图片描述

一、RGB单通道灰度Gray转换
Gray 图像:灰度(gray)图像就是我们常说的黑白图像,由黑到白为灰阶为 0-255(8个bit)。
由tft需要的数据为RGB565格式数据,一共16位,单通道灰度转换即分别提取R\G\B三个通道的值,只保留一个进行16位的长度填充(我的理解原理是三原色同样比重以后是黑白色,即为灰度)。
用G来进行灰度转换
二、MATLAB部分
代码:
请添加图片描述
效果图
请添加图片描述
三、FPGA部分
首先进行原理图设计,在SDRAM传图的基础上,最后加入RGB_gray模块,对最后输出信号进行处理。
请添加图片描述
RGB_gray模块没有时序,直接换图像数据位置

assign rgb_gray_out = {rgb_in[15:11],rgb_in[15:11],1'b0,rgb_in[15:11]};			//red

	//assign rgb_gray_out = {rgb_in[15:11],rgb_in[15:11],1'b0,rgb_in[15:11]};    //green

生成rtl视图
请添加图片描述
上开发板验证结果图:
请添加图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值