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