首先,通过matlab将bmp格式的图像转换成dat格式
下例子以将连续四帧图像转换为dat格式为例:
clc;
close all;
clear all;
%说明:生成DSP实验所用的图像数据Dat文件
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i = 1:4
str = strcat('D:\_Matlab_WorkSpace\', int2str(i), '.bmp');
I = imread(str);
%I = imread('D:\_Matlab_WorkSpace\000001.bmp');%打开图像,这里改成自己的图像名及路径
%将图像缩小一点,不然数据量太大
%I = imresize(I,[128,128],'bicubic');%<span style="color:#ff0000;">缩小成128*128、二维FFT时需要图像为2的n次方</span>
figure,imshow(I);%显示图像
[N, M, dim] = size(I);%获取图像的高与宽
if(dim == 3)
I = rgb2gray(I);%如果打开的是彩色图像,则转换成灰度图像
end
fil = strcat('D:\_Matlab_WorkSpace\', int2str(i), '.dat');
fid = fopen(fil,'w');%保存.dat图像数据文件
fprintf(fid,'%d %d %s %d %d\n',1651,2,'8cc0', 0, i*N*M);%写入二进制文件的第一行
%将图片数据写入Dat文件中
for n = 1:N
for m = 1:M
fprintf(fid,'%d\n',I(n,m));
end
end
end
fclose(fid);
disp('Run OK')
将四个文件合并成一个即可。
其次,将图像导入DDR中,需要知道DDR的地址。查询cmd文件知道其起始地址为0x80000000
Build->Debug程序之后可通过Tools->Load Memory来加载图像信息。
加载成功后,可以通过Memory Browser输入起始地址来查看数据值。亦可通过Tools->Image Analyzer来显示图像。
Properties输入的参数如下图:
然后Refresh之后即可显示图像了。
最后,将DDR的起始地址0x80000000赋给一个变量,就可以通过这个变量对图像进行操作了。