没事随便写写——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文件_第1张图片

你可能感兴趣的:(matlab知识补充)