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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章