<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');