【图像处理】FPGA verilog实现16位RGB的图像的灰度转换

该项目使用FPGA Spartan6 X16通过Verilog实现16位RGB图像到8位灰度图像的转换。内容包括RAM模块(16*22500)、灰度处理模块和VGA800X600显示模块。首先在MATLAB中将24位RGB图像转换为16位coe文件,然后在FPGA中读取该文件进行处理。最终,处理后的150*150大小的灰度图像显示在VGA屏幕上。提供源代码下载链接供学习参考。
摘要由CSDN通过智能技术生成

项目:FPGA verilog实现16位RGB的图像的转换为8位宽的灰度图。

项目需要的模块:调用一个RAM,16*22500,灰度处理模块和VGA800X600模块。

         本次用到的FPGA是spartan6  X16。因为资源少,所以先尝试的做点简单的图像处理。由于RGB为16位宽的,red,5位宽,green,6位宽,blue,5位宽,故首先将彩色图片用matlab转换为16位的数据,生成coe文件。

下面是将彩色图片用matlab转换为coe文件的程序,是将24位的图片信息转换为16位宽的coe文件。

clc;
clear all ;
RGB = imread('Lena.png') ;
R =RGB ( : ,: ,1) ;
G =RGB ( : ,: ,2) ;
B =RGB ( : ,: ,3) ;
outdata = zeros(1,150*150) ;
outdata1 = zeros(1,150*150) ;
for i = 1:150 
	for j = 1: 150 
        outdata((i-1)*150+j) = bitand(R(i,j),248)+ bitshift(bitand(G(i,j),224),-5);
        outdata1((i-1)*150+j) = bitand(G(i,j),224)+ bitshift(bitand(G(i,j),248),-3);
        end
end


fid = fopen('Lena.coe','w+');

 fprintf(fid,'memory_i
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值