1. 程式人生 > >matlab中文字檔案與影象轉化

matlab中文字檔案與影象轉化

 

一  將圖片轉化為txt文字檔案

a=imread('picture.bmp');   //讀取picture.bmp圖片

b=rgb2gray(a);                 //由rgb圖片轉化為灰度圖

c=b';                               //matlab由圖片轉換為矩陣是一列一列轉的,txt檔案資料讀入矩陣也是一列一列讀入的,後文以行為單位處理的話需要轉置,後面還要再轉置一次

fid0=fopen('data.txt','wt');   //在matlab工作目錄建立並開啟一個名為data.txt的檔案,形式為可寫

fprintf(fid0,'%x\n',c);          //把灰度圖矩陣b以16進位制寫入data.txt檔案,沒寫入一個元素換一行

fclose(fid0);                     //關閉儲存該data.txt檔案       

二   將txt文字檔案讀取為圖片

法一:

fid0=fopen('data.txt','r');     //data.txt已存在與matlab工作目錄,以讀取形式開啟該檔案

[a,count]=fscanf(fid0,'%x');//a為data.txt檔案資料讀入的矩陣,以16進位制形式,count為該矩陣元素個數

b=reshape(a,m,[])            //將矩陣a轉換為圖片大小的矩陣b,圖片行長為m

c=b';                              //需要再轉置一次方為圖片行列方向的矩陣

imshow(b,[]);                   //顯示矩陣b為圖片

若法一提示有錯誤,就用法二,具體原因有時間再研究,反正我不是做影象處理的,matlab用到哪就學到哪吧!

法二:

a0=load(data.txt');           //將txt檔案資料讀取入矩陣
b0=reshape(a0,m,[]);       //將矩陣a轉換為圖片大小的矩陣b,圖片行長為m
c0=b0';                           //轉置,原因同上
imshow(c0,[]);                 //顯示圖片