您的位置:首页 > 编程语言 > MATLAB

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

2015-10-12 20:22 423 查看
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">刚开课,上了一节计算机图像处理,想了一下把图像转换成矩阵表示,然后存储到txt文档中去。图片用的 lena.jpg</span>


读取出来的肯定是一个三维矩阵,因为是彩色的,第三维度分别是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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: