⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 img2num.m

📁 此matlab程序针对320×240的tft液晶显示屏
💻 M
字号:
function img = img2num( fname,pname )
%将一个320*240的图像转换为一个一维数组用于LCD的显示。输出在C:\img.c
%输入必须是一个320*240的图像
switch nargin
case 0
    [fname,pname]=uigetfile('*.jpg;*.bmp');
    if fname==0 
        disp('failed');
        return;
    end
	filename=[pname fname];
case 1
    filename=fname;
case 2
   	filename=[pname fname];
end
img_3d_array=imread(filename);
%将图像文件读入,此时读入的数组是一个三维的8位数组,
%将其按照16位(65536色)LCD的表示方法,将其变为一个一维数组
k=1;
for i=1:320
    for j=1:240
%        if j==150
%           disp('j=150');
%        end
        r=double(img_3d_array(i,j,1));
        g=double(img_3d_array(i,j,2));
        b=double(img_3d_array(i,j,3));
        red=uint16(floor(r/8));   %注意这个地方由于uint8型的数据计算后还是这个类型的数据,将其进行强制类型转换为16位无符号整数。
        green=uint16(floor(g/4));
        blue=uint16(floor(b/8));
        %C=(uint32)red*(2^11)+green*(2^5)+blue;
        img(k)=red*(2^11)+green*(2^5)+blue;
        k=k+1;
    end
end
fname='L:\6.c';
temp=[];
dlmwrite(fname,temp);   %创建一个文件
fp=fopen(fname,'w');
%根据C语言的语法每行5个数共15360行,注意每个数后头加逗号,每5个数加入一个回车。
for i=1:15360
    fprintf(fp, '%6u,', img(5*i-4));
    fprintf(fp, '%6u,', img(5*i-3));
    fprintf(fp, '%6u,', img(5*i-2));
    fprintf(fp, '%6u,', img(5*i-1));
    fprintf(fp, '%6u,\n', img(5*i-0));
end
fclose(fp);
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -