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,[]); //顯示圖片