USB2.0用の.binに伝送するためのフォーマットに画像データを変換することによって達成MATLAB

      USB2.0は、最近、特に画像の伝送では、いくつかのFPGAベースのデータ伝送を行うために用意しました。私たちはやっての過程でさまざまな問題が発生しました。ここで問題とどのように関連した要約で遭遇対処するために行うことです。

     データはTXTであろうため、図1に示すように、画像データの転送のためのUSB2.0(これは私が使用するUSB​​テストソフトウェアは、私はサイプレスUSBコンソールを使用に関連している場合)、直接伝送TXTファイルとしてUARTなどのASCIIコードを転送することができませんデータ伝送エラーが発生します。

     図2に示すように、選択された画像の直接送信を書き込み、画像信号の一部は、ファイル転送.BMP形式として、存在しない製造する場合はヘッダファイルの形式が表示され表します。

    だから、ファイルは、関連する.binファイルに転送する必要があります。コードの場合:

          

CLC; 
クリアは、
画像を読み取る%がデータに変換され、関数imread関数は、()は、実際にそれらに応じてパスを埋めることができる機能である
IMG =関数imread(「test.bmpは」); 
%ため、RGB画像データが3つ有するとアレイは、抽出した
;(:、1)IMG_R = IMG 
(:、:、2); img_g = IMG 

img_b = IMG(:、:、3) 
へのデータの全ての%、我々は最終的にしたいのでをVGAに表示するデータを変換するために、
%はそう16BITに生データを変換する必要があり、RGB = 565が取られる高いR 5ビット、Gは高い5ビット取ら高い6ビット、B、取ら
[COL ROW] =サイズ(IMG_R)を;%を画像サイズを取得
R&LT =ための1行; 
       C =ために1:COL; 
           out_data_h((R&LT-1)* COL + C)= BITAND(IMG_R(R&LT、C)、248)+ビットシフト(BITAND(img_g(R&LT、 C)、224),. 5); 
           out_data_l((R&LT-1)* COL + C)=ビットシフト(BITAND(img_g(R&LT、C)、28),. 3)+ビットシフト(BITAND(img_b(R&LT、C)。 、248)、 - 3); 
           
       エンド
エンド

%のファイル.BINへの書き込みデータをスプライシングされた 
=用のfopen( 'test.bin'、FID 'WBを');
I = 1:ROW * COL 。
    fwriteの(FID、out_data_h(I)); 
    fwriteの(FID、out_data_l(I)); 
エンド
FCLOSE(FID)。

  

   MATLABのシミュレーションを使用すると、画像が設定されていない大きすぎるとき、それを説明する必要があり、そうでない場合はデータが開かない.binファイルを生成する、または生成しません

   

我々は現在の読み出し、この画像サイズは100×100であると、画像データ表示テーブルを読んだ後、このデータ・フォーマットで、寸法三のRGB成分を表す、3であり、各パーティションを表しUINT8 Lは8ビットで表される量です。

そして、我々は多くの場合、同じデータを送信したり、一般的なデータは、実際の状況とUSB2.0のサポート8BIT 16ビットのデータ伝送としてバイトの単位で表示されます。そして、RGB565モードについて。

 

     

おすすめ

転載: www.cnblogs.com/lgy-gdeu/p/11409492.html