【Matlab影像處理】學習筆記:讀取16進位RGB文檔轉為彩色圖片

來源:互聯網
上載者:User

在JPEG解碼中對JPG圖片進行瞭解碼,解碼的資料分為RGB三色,這三色資料(16進位)存放在3個檔案中red.dat,green.dat,blue.dat;用matlab把這3色資料複原成映像。

這裡僅對紅色處理,其他兩種顏色的處理方法類似。

這裡解碼的是一幅1080*1920的jpg圖片。

red.dat檔案中存放的是16進位的資料

格式如,這裡只列了12個資料,總共有1080*1920個資料。

Matlab來源程式如下

rgb

 1 clear;
2 RGB=imread('blank.jpg');
3 red=zeros(1080,1920);
4 a=textread('red.dat','%s')';
5 b=hex2dec(a);
6 c=uint8(b);
7 for i=1:1080
8 for j=1:1920
9 m=1920*(i-1)+j;
10 red(i,j)=c(m);
11 end
12 end
13
14 RGB(:,:,1)=red;
15 RGB(:,:,2)=0;
16 RGB(:,:,3)=0;
17 jpeg=imread('picture.jpg');
18 subplot(1,2,1),imshow(jpeg);
19 subplot(1,2,2),imshow(RGB);

第2行:blank.jpg是一幅1080*1920的空映像。

第3行:建立一個二維數組red用來儲存R的值。

第4行:讀取16進位的red.dat檔案中的資料放到a中。

第5行:16進位轉化為10進位。

第7-12行:讀取的資料放到二維數組red中。

第14行:設定紅色分量。

第15行:設定綠色分量,這裡設為0;

第16行:設定藍色分量,這裡設為0;

第17行:讀取原始映像。

第18-19行:顯示原始映像和解碼之後的只含紅色分量的映像。

 

運行結果:

左邊的為原始映像,右邊的為解碼之後的只含紅色分量的映像。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.