利用MATLAB将图片转换成coe文件、TXT文件、mif文件、bin文件

您所在的位置:网站首页 jpg转换bmp格式有什么工具 利用MATLAB将图片转换成coe文件、TXT文件、mif文件、bin文件

利用MATLAB将图片转换成coe文件、TXT文件、mif文件、bin文件

2023-09-03 09:37| 来源: 网络整理| 查看: 265

利用MATLAB将图片转换成coe文件、TXT文件、mif文件 利用MATLAB将图片转换成coe文件利用MATLAB将图片转换成txt文件利用MATLAB将图片转换成mif文件利用MATLAB将图片转换成bin文件‘总结

利用MATLAB将图片转换成coe文件

首先,MATLAB是特别强大的数学工具,如果不会MATLAB那么自己的整个职业生涯只能写写接口逻辑,与算法再无关联,很难有长久的进步,所以这里我们将给出几个MATLAB的例子。 我们为什么要将一幅图片转换成coe图片,因为在ISE软件中,我们可以发现ROM中预存的信息格式是coe文件,所以我们要想在ROM存储相应的信息,必须先把文件转换成coe文件。相信同学们也都明白该操作的意义,所以我们这里直接给出代码以供学习交流。

// ********************************************************************************* // Project Name : OSXXXX // Author : zhangningning // Email : [email protected] // Website : // Module Name : fig.coe // Create Time : 2020-02-07 15:26:28 // Editor : sublime text3, tab size (4) // CopyRight(c) : All Rights Reserved // // ********************************************************************************* // Modification History: // Date By Version Change Description // ----------------------------------------------------------------------- // XXXX zhangningning 1.0 Original // // ********************************************************************************* clc; clear all; RGB=imread('logo.jpg'); R=RGB(:,:,1); G=RGB(:,:,2); B=RGB(:,:,3); outdata=zeros(1,40000); for r = 1:200 for c = 1:200 outdata((r-1)*200+c)=bitand(R(r,c),224)+bitshift(bitand(G(r,c),224),-3)+bitshift(bitand(B(r,c),192),-6); end end fid=fopen('data.coe','w+'); fprintf(fid,'memory_initialization_radix=16;\nmemory_initialization_vector=\n'); for i = 1:39999 fprintf(fid,'%x,\n',outdata(i)); end fprintf(fid,'%x;',outdata(40000)); fclose(fid); 利用MATLAB将图片转换成txt文件

这里也说明一下这样做的原因,例如我们要经过串口发送一幅图片数据时,我们不能直接用UE打开图片,然后将UE中的信息发送出去,因为学过图像处理的同学都应该知道,对于bmp真彩图,图片中含有文件头和信息头与图片信息,对于索引图像更是有索引表,对于常见的jpg压缩图像更使与图片信息没有直接关系。所以我们要利用MATLAB将图片信息提取到txt文件中。弄清楚了该过程的意义之后,我们给出转换的代码如下:

// ********************************************************************************* // Project Name : OSXXXX // Author : zhangningning // Email : [email protected] // Website : // Module Name : fig.txt // Create Time : 2020-02-07 15:26:28 // Editor : sublime text3, tab size (4) // CopyRight(c) : All Rights Reserved // // ********************************************************************************* // Modification History: // Date By Version Change Description // ----------------------------------------------------------------------- // XXXX zhangningning 1.0 Original // // ********************************************************************************* clear all; %清空所有变量 clc; % pic_data = imread('./800x600a.jpg'); %R:8bit pic_red = pic_data(:,:,1); pic_green = pic_data(:,:,2); pic_blue = pic_data(:,:,3); [ROW COL] = size(pic_red); % 对原图进行处理,将处理完的图像数据写入abc.txt文件 fid = fopen('./abcde800x600a.txt','w+'); for r = 1: ROW for c = 1:COL %red取高3位,green取高3位,blue取高2位,拼成8位 % 串口,一帧数据:8bit,原始图像一个像素点占24bit pic_out(r,c) = bitand(pic_red(r,c), 224) + bitshift(bitand(pic_green(r,c),224),-3)+ bitshift(bitand(pic_blue(r,c),192),-6); fprintf(fid,'%02x ',pic_out(r,c)); end end fclose(fid); 利用MATLAB将图片转换成mif文件

intel FPGA中ROM文件中存储的时mif文件,与Xilinx中相同,想将图片信息存储到FPGA的ROM中,必须先将图片信息转存成mif文件,这里也不过说直接给出相应的代码供同学们理解:

// ********************************************************************************* // Project Name : OSXXXX // Author : zhangningning // Email : [email protected] // Website : // Module Name : fig.mif // Create Time : 2020-02-07 15:26:28 // Editor : sublime text3, tab size (4) // CopyRight(c) : All Rights Reserved // // ********************************************************************************* // Modification History: // Date By Version Change Description // ----------------------------------------------------------------------- // XXXX zhangningning 1.0 Original // // ********************************************************************************* function miffile(filename,var,width,depth) if(nargin~=4) %% be tired to do more inupts check! error('Need 4 parameters! Use help miffile for help!'); end, fh=fopen(filename,'w+'); fprintf(fh,'--Created by zhangningning.\r\n'); fprintf(fh,'[email protected].\r\n'); fprintf(fh,'--%s.\r\n',datestr(now)); fprintf(fh,'WIDTH=%d;\r\n',width); fprintf(fh,'DEPTH=%d;\r\n',depth); fprintf(fh,'ADDRESS_RADIX=HEX;\r\n'); fprintf(fh,'DATA_RADIX=HEX;\r\n'); fprintf(fh,'CONTENT BEGIN\r\n'); var=rem(var,2^width);%% clip to fit the width; [sx,sy,sz]=size(var);%% can only fit 3D or less; value=var(1,1,1); sametotal=1; idepth=0; addrlen=1; temp=16; while(temp


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3