DSP C6000导入指定图像数据(一)

本文章分为两小篇,该篇主要分享如何利用Matlab生成我们所需要的YUV422格式数据

下一篇为利用数据导入DSP并进行查看。

下面为Matlab程序:

clear all;
close all;
clc;
 
img=imread('1280_720.jpg');
%img=mat2gray(img);  %任意区间映射到[0,1];
[m n dim]=size(img);
 
%figure,imshow(img),title('原始图像');
%%图像的RGB
img=double(img);
R=img(:,:,1);
G=img(:,:,2);
B=img(:,:,3);
 
%%RGB2YCbCr
Y=zeros(m,n);    %亮度
Cb=zeros(m,n);   %彩度
Cr=zeros(m,n);   %浓度
matrix=[0.299 0.587 0.114;
        -0.1687 -0.3313 0.5;
        0.5 -0.4187 -0.0813];
for i=1:m
   for j=1:n 
        tmp=matrix*[R(i,j) G(i,j) B(i,j)]';
        Y(i,j)=uint8(tmp(1));
        Cb(i,j)=uint8(tmp(2)+128);
        Cr(i,j)=uint8(tmp(3)+128);
   end
end
 
%%YCbCr2RGB
matrix=inv(matrix);
for i=1:m
   for j=1:n 
        tmp=matrix*[Y(i,j) Cb(i,j)-128 Cr(i,j)-128]';
        R(i,j)=tmp(1);
        G(i,j)=tmp(2);
        B(i,j)=tmp(3);
   end
end
 
%%如果正反变换都没错的话,那么图像是不变的
img(:,:,1)=R;
img(:,:,2)=G;
img(:,:,3)=B;
%figure,imshow(uint8(img)),title('原始图像验证');
 
I1 = zeros(m,2*n);
 
for i=1:m
   for j=1:n
   I1(i,2*j-1) = Y(i,j);
end
end
 
for i=1:m
   for j=1:2:n
   I1(i,2*j) = Cb(i,j);
end
end
 
for i=1:m
   for j=1:2:n
   I1(i,2+2*j) = Cr(i,j);
   end
end
%{%}
 
%  imview(I1,map);
 fid=fopen('.\1280_720_new.dat','wt');   %打开一个文件写入数据
% fid=fopen('f:\bmp2.dat','w');
fprintf(fid,'1651 9 806BD000 0 %x c\n',m*n*2);
 
 
%N=0;
for i=1:m
    for j=1:2*n
 	%N=N+1;
        index = floor((j-1)/2);
        chang_col = - j + 3 + index*4;
   	if I1(i,chang_col) < 16
   	    fprintf(fid,'0x0%x\n',I1(i,chang_col));
   	else
   	fprintf(fid,'0x%x\n',I1(i,chang_col));
   	end
%          if rem(N,1)==0;
%          fprintf(fid,'\n'); 
%          end
    end
end
fclose(fid);



上述matlab中修改参数:

img=imread('1280_720.jpg'); 此为图片名称,与.m文件处同一路径

fid=fopen('.\1280_720_new.dat','wt'); 生成文件名称

下面为生成的1280_720_new.dat起始部分截图:

 

第一行为DSP导入需要信息,我也是通过memory 导出数据得出。

806BD000 为导入起始地址 0为偏移 1c2000导入总数且为16进制, cc语言格式;

该处无需深究

 

上图中的indexchang_col是为了修改YUV格式顺序(DSP识别YUV格式顺序有关)

未修改前为

V0

Y1

U0

Y0

0x806BD003 

0x806BD002 

0x806BD001 

0x806BD000 

修改后

Y1

V0

Y0

U0

0x806BD003 

0x806BD002 

0x806BD001 

0x806BD000 

发布了27 篇原创文章 · 获赞 8 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/liu1guo2qiang3/article/details/43311965
dsp