微软官方MSDN原版Win10系统下载

现在位置: 首页  > 系统教程  > 系统帮助

matlab如何输出结果

时间:2024-11-23 09:22:37   

大家好,今天Win10系统之家小编给大家分享「matlab如何输出结果」的知识,如果能碰巧解决你现在面临的问题,记得收藏本站或分享给你的好友们哟~,现在开始吧!

生意如何小账本专业版-小商户销售和存货记账系列软件最新版本下载

1.如何用matlab如何输出数据


  matlab图像处理工具箱支持四种基本图像类型:索引图像、灰度图像、二进制图像和rgb图像。matlab直接从图像文件中读取的图像为rgb图像。它存储在三维数组中。这个三维数组有三个面,依次对应于红(red)、绿(green)、蓝(blue)三种颜色,而面中的数据则分别是这三种颜色的强度值,面中的元素对应于图像中的像素点。设所得矩阵为x三维矩阵(256,256,3) ,x(:,:,1)代表红颜色的2维矩阵 x(:,:,2)代表绿颜色的2维矩阵, x(:,:,3)代表兰颜色的2维矩阵。[x, map]=imread('34.bmp');r=double(x(:,:,1)); %r是256 x 256的红色信息矩阵g=double(x(:,:,2)); %g是256 x 256的绿色信息矩阵b=double(x(:,:,3)); %b是256 x 256的兰色信息矩阵
索引图像数据包括图像矩阵x与颜色图数组map,其中颜色图map是按图像中颜色值进行排序后的数组。对于每个像素,图像矩阵x包含一个值,这个值就是颜色图数组map中的索引。颜色图map为m×3双精度矩阵,各行分别指定红、绿、蓝(r、g、b)单色值,map=[rgb],r、g、b为值域为[0,1]的实数值,m为索引图像包含的像素个数。
对于相同的数据,采用uint8格式比双精度格式节省内存空间,从而更经济。在matlab中
如果索引图像的颜色图小于256行,则它的图像矩阵以uint8格式存储,否则以双精度格式存储。
一:imread:从图像文件夹中读取图像。
a = imread(filename,fmt) 读取图像到a,如果文件是包含一灰度图像,a是一二维矩阵,如果文件是包含一真彩色图像(rgb),a是一三维矩阵(m-by-n-by-3)。filename :图像文件名;fmt:图像文件格式;
文件必须在当前目录下,或在matlab的一路径上。如果 imread不能够找到一名称为filename的文件,那么它将找一名为filename.fmt的文件
[x,map] = imread(filename,fmt) 把图像filename读入与它相关的图像色彩信息写入map,图像色彩信息值在范围[0,1]中自动地重新调整. 
[...] = imread(filename)这种方式是试图得到文件的格式从文件所包含的信息。 
  [...] = imread(url,...)从一internet url上读图像   url 必须包含协议(即: "http://").
1.2数据类型:
  tiff的特殊语法:
  [...] = imread(...,idx) 从很多图像tiff文件中读一个图像;idx是一个整数值,它显示了所读图像在文件中的顺序,例如:如果 idx是 3, imread将读文件中的第三个图像。 如果省略了这个变量, imread将读文件中的第一个图像. 
  imread支持的图像文件格式:jpeg tiff gif   bmp png hdf   pcx  xwd  ico  cur  ras pbm   pgm   ppm 
相关信息也可在matlab中查看: imfinfo, imwrite, imformats, fread,
二:imwrite输出图像
imwrite(a,filename,fmt) 把图像 a 写入图像文件 filename.
imwrite(x,map,filename,fmt) 把 x和它的相关色彩信息map写入filename. 
imwrite(...,filename) 把图像 写入图像文件filename,并推测可能的格式用来做filename的扩展名。扩展名必须是fmt中一合法名.
imwrite(...,param1,val1,param2,val2,...) 不同的参数控制输出文件的各种不同特征。参数要是当前所支持的hdf,jpeg, tiff, png, pbm, pgm, 和ppm 文件
三:image 显示图像.image(c) 把矩阵 c 转成一图像. c 可以是一mxn 或 mxnx3维的矩阵,且可以是包含 double, uint8,或 uint16 数据.image是用来显示附标图像,即显示的图像上有x,y坐标轴的显示,可以看到图像的像素大小。但可以加上axis off命令即可把坐标去掉。
imshow只是显示图像。用colormap来定义图像显示用的颜色查找表,比如用colormap(pink),可以把黑白图像显示成带粉红色的图像。
图像像素矩阵的数据类型:(1)显示真彩色图像像素三维矩阵x,如果是uint8类型,要求矩阵的数据范围为0-255,(2)如果是double型,则其数据范围为0-1,要不就会出错或者出现空白页。
类型转换:(1)如果你原来的数值是uint8,在运算中转换为double后,实际要显示的数值没有改变的话,只要用uint8(x)就可转换为uint8型,如果不想转换频繁,也可在显示时用x/255来转换为符合0-1double类型范围要求的数值显示。(2)如果显示索引图像(二维矩阵),如果索引图像像素数值是double型,则它的取值范围为1-length(colormap),数值起点为1,则矩阵中数值为1的对应colormap中第一行数据,如果索引图像像素数值是uint8,则取值范围为0-255,数值起点为0,则矩阵中数值为0的对应colormap中第一行数据,所以索引图像这两个数据类型之间的转换,要考虑到+1或-1。直接用uint8或double转换则会查找移位,产生失真情况。uint16数据类型与uint8类似,取值范围为0-65536。
四:其它常用图像操作:
图像显示于屏幕有imshow( ), image( )函数;
图像进行裁剪imcrop( );
图像的插值缩放imresize( )函数实现;
旋转用 imrotate( )实现。
五:具体的操作
下面通过运用图像处理工具箱中的有关函数对下图(nice.bmp)进行一些变换。见后面的transfer.m内容!
变换前图片:(nice.bmp)
变换后所得图片:newpic.bmp
例,在电脑f\picture下有一彩色图像文件nice.bmp,则可由下述语句读取:
下面是对图像 nice.bmp以y轴为对称轴所做的一个对称变换。
% transfer1.m
clear all
figure
[x,map]=imread('f:\picture\nice.bmp');% 所得x为一375x420x3的矩阵
[w1,w2,w3]=size(x); % 375 x 420
w22=floor(w2/2);
image(x); %显示出图像
title('hello! @this is the first pose of me')%则显示出图像nice.bmp
axis off;  % 去掉图像中的坐标
colormap(map);  % colormap(),图像查找表函数。函数结构为colormap(map),设置当前的图像查找表到map。
imwrite(x,map,'nice.bmp')
for i=1:w1  
for j=1:w22  % 图像关于y轴对折
t=x(i,j);
x(i,j)=x(i,w2-j+1);
x(i,w2-j+1)=t;
end
end
figure
image(x);   
axis off
title('hello!!@@ can you find any difference of my two picture! ') colormap(map);
imwrite(x,map,'newpic.bmp') %把x写到nepic2.bmpz中去
% transfer1.m文件中包含了最基本也是最常用的对读像处理的命令。
在对图像处理的整个过程中,实质上是对[x,map]=

2.matlab中怎么输出一个变量的值?


  MATLAB输出变量方法很多,主要包括以下几类:
  (1)语句后面不加分号“;”,这是直接输出数值的比较简单的方法。
  (2)disp(a)直接在命令窗口显示a变量,这种方法输出和第一种差不多。
  (3)fprintf(‘a=%f,a)格式控制输出,输出‘a=然后再显示输出的变量。如下图:
  (4)save(dir+name,‘变量名)保存输出到某个文件中去,可以将数值保存。
  扩展资料:
  如果要输出到文件,有一点要说明的是fprintf带一个ID参数,它代表着输出的位置,也就是说其完整的函数应是fprintf(fileID,formatSpec,A1,...,An),这个fileID有两个常数值:
  1、代表屏幕(这个也就是默认值)
  2、代表standard error
  如果要向文件输出,可以看下面的例子:
  x = 0:0.1:1;
  y = [x;exp(x)];
  %写入文本文件
  Fid = fopen(exp1.txt,wt);
  fprintf(Fid,%6.2f .8f\n,y);
  fclose(Fid);
  %读取文本文件
  fid = fopen(exp1.txt,r);
  [a,count] = fscanf(fid,%f%f,[2,inf]);
  fprintf(1,%f %f\n,a);
  fclose(fid)
  运行结果及说明:
  (1)%6.2f意思是以浮点数格式读入,总共占6位(靠右对齐),小数点后面两位。
  (2)fprintf(Fid,%6.2f .8f\n,y);说明y是一个2*N的矩阵,但是在matlab数据读入时,是按列序为默认的,即这个读入在文本中的显示是一个N*2的格式x为一列,y为一列,结合(1)(2)两点说明,就可以理解下面的文本文件:
  (3)fprintf(1,%f %f\n,a);
  1 是代表屏幕。

以上就是关于「matlab如何输出结果」的全部内容,本文讲解到这里啦,希望对大家有所帮助。如果你还想了解更多这方面的信息,记得收藏关注本站~

【★本♂文来源Win10系统之家Www.GhoSt580.net,不得自行转载,违者必追究!】

相关文章

  • matlab如何输出结果

    matlab如何输出结果

    1.如何用matlab如何输出数据matlab图像处理工具箱支持四种基本图像类型:索引图像、灰度图像、二进制图像和rgb图像。matlab直接从图像文件中读取的图像为rgb图像。它存储在三维数组中。这个三维数组有三个面,依次对应于红...
  • 如何使matlab输出图像

    如何使matlab输出图像

    1.在matlab中如何输出一个函数的图像A、imreadimread函数用于读入各种图像文件,其一般的用法为[X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的图像...
  • matlab中如何使用if

    matlab中如何使用if

    1.matlab程序if语句用法MATLAB中我们常常用到条件判断语句结构,通过实例介绍这个结构的用法:1、if.....end结构,运行下面的句子,此条件语句是判断5是否大于3,如果大于3,就将1赋值给;2、if....else...end结构,我们以如...
  • matlab中如何调试

    matlab中如何调试

    1.matlab自定义函数调试Matlab自定义函数的几种方法1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件;2、函数文件+子函数:定义一个具有多个自定义函数的M文件;3、Inline:无需M文件,直接定义;4、匿名函数;5、Sy...