matlab将图像转为txt,没事随便写写——matlab图像与矩阵的转换与存储为txt文件

刚开课,上了一节计算机图像处理,想了一下把图像转换成矩阵表示,然后存储到txt文档中去。图片用的 lena.jpg

读取出来的肯定是一个三维矩阵,因为是彩色的,第三维度分别是R、G、B

第一二维度也就是对应屏幕上的像素点

如果是灰度图像,得到的就是二维矩阵

有错误,希望指正,初学者(⊙o⊙)…

废话不多说,没代码说啥

图片转换为矩阵,存储到 lean.txt 和存储为数据形式imagematrix.mat里面

%图片转换为矩阵

a=imread('D:\BingZhouWork\Image\lena.jpg');

%保存矩阵方法一

% [r,c]=size(a);

% fid=fopen('D:\matlab\bin\BingZhouWork\Image\lena.txt','wt');

% for i=1:r

% for j=1:c

% fprintf(fid,'%d\t ',a(i,j));

% end

% fprintf(fid,'\n');

% end

% fclose(fid);

%保存矩阵方法二

dlmwrite('D:\BingZhouWork\Image\lena.txt',a,'delimiter','\t');

%保存到mat格式

save imagematrix a;

这个程序是第一次写,出了点问题,显示为三个图像,具体原因,请对比下面那个修正版的程序,提示:图像是三维的矩阵:

%读取txt格式,但是会出现点问题

M=load('D:\BingZhouWork\Image\lena.txt');

[r,c]=size(M);

imwrite(uint8(M),'matrix1.tif','tif');

imshow('matrix1.tif');

% b=dlmread('D:\matlab\bin\BingZhouWork\Image\lena.txt');

% [r2,c2]=size(b);

% imwrite(uint8(b),'matrix1.tif','tif');

% imshow('matrix1.tif');

%读取mat格式

% load('imagematrix.mat');

% [r1,c1]=size(a);

% imwrite(uint8(a),'matrix.tif','tif');

% imshow('matrix.tif');

修正以后的程序:

clear

clc

%读取txt格式,但是会出现点问题

M=load('D:\BingZhouWork\Image\lena.txt');

[r,c]=size(M);

a1=M(:,1:512);

a2=M(:,513:1024);

a3=M(:,1025:1536);

A(:,:,1)=a1;

A(:,:,2)=a2;

A(:,:,3)=a3;

imwrite(uint8(A),'matrix1.tif','tif');

imshow('matrix1.tif');

%读取mat格式

% load('imagematrix.mat');

% [r1,c1]=size(a);

% imwrite(uint8(a),'matrix.tif','tif');

% imshow('matrix.tif');

下图是lena.jpg

matlab将图像转为txt,没事随便写写——matlab图像与矩阵的转换与存储为txt文件_第1张图片

你可能感兴趣的:(matlab将图像转为txt)