没事随便写写——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
相关文章推荐
- MATLAB数字图像处理(一)图像的基本操作
- 在Ubuntu14.04下安装matlab2014a以及破解
- pagerank的matlab实现
- Matlab初学笔记(一)
- 模拟退火算法(MATLAB实现)
- Matlab中颜色线形和形状
- Matlab画柱状和折线对照图
- matlab矩阵分块
- MATLAB画图如何标记特殊点
- 如何分析matlab程序的主要效率问题
- matlab
- matlab调用mysql
- 图像数据分块matlab
- MATLAB Implementation: light-weight vs. heavy-weight
- 使用matlab软件打开一幅图片并且分别提取其中的RGB分量并显示
- Matlab中绘制网格图和等高线:mesh 和 surf
- 基于Matlab的离散小波变换
- matlab笔记-基础知识
- 分水岭算法MATLAB编程代码解析
- 看衰simulink和autosar