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


在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行:顯示原始圖像和解碼之后的只含紅色分量的圖像。

 

運行結果:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM