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

时间:2024-02-15 20:20:25

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