matlab中文本文件与图像转化 - limanjihe

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