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