您当前的位置:matlab资源网文章中心资料 → 文章内容

MATLAB基本的使用方法

作者:未知  来源:转载http://blog.sina.com.cn/s/blog_513d21e9010092b2.html  发布时间:2008-5-15 16:40:45
 1.读取图像:用imread函数读取图像文件,文件格式可以是TIFF、JPEG、GIF、BMP、PNG等。比如
  • >> f = imread('chestxray.jpg');

    读进来的图像数据被保存在变量f中。尾部的分号用来抑制输出。如果图片是彩色的,可以用rgb2gray转换成灰度图:

    >> f = rgb2gray(f);

    然后可以用size函数看图像的大小

    >> size(f)

    如果f是灰度图像,则可以用下面的命令把这个图像的大小赋给变量M和N

    >> [M, N] = size(f);

    用whos命令查看变量的属性

    >> whos f
  • 2.显示图像:用imshow显示图像
  • imshow(f, G)

    其中f是图像矩阵,G是像素的灰度级,G可以省略。比如

    >> imshow(f, [100 200])

    图像上所有小于等于100的数值都会显示成黑色,所有大于等于200的数值都会显示成白色。pixval命令可以用来查看图像上光标所指位置的像素值。

    pixval

    例如

    >> f = imread('rose_512.tif'); >> whos f >> imshow(f)

    如果要同时显示两幅图像,可以用figure命令,比如

    >> figure, imshow(g)

    用逗号可以分割一行中的多个命令。imshow的第二个参数用一个空的中括号:

    >> imshow(h, [])
    可以使动态范围比较窄的图像显示更清楚。

 

  • 3.写图像。用imwrite写图像

imwrite(f, 'filename')

文件名必须包括指明格式的扩展名。也可以增加第三个参数,显式指明文件的格式。比如

  • >> imwrite(f, 'patient10_run1.tif', 'tif')

    也可以写成

    >> imwrite(f, 'patient10_run1.tif')

    还可以有其他参数,比如jepg图像还有质量参数:

    >> imwrite(f, 'filename.jpg', 'quality', q)

    q是0到100之间的一个整数。对比不同质量的图像效果。用imfinfo命令可以查看一个图像的格式信息,比如

    >> imfinfo bubbles25.jpg

    可以把图像信息保存到变量中

    >> K = imfinfo('bubbles25.jpg'); >> image_bytes = K.Width * K.Height * K.BitDepth / 8; >> compressed_btyes = K.FileSize; >> compression_ratio = image_bytes / compressed_bytes
  • 4.数据类型。MATLAB的数据类型包括:

    double 双精度浮点 uint8 无符号8位整数 uint16 无符号16位整数 uint32 无符号32位整数 int8 有符号8位整数 int16 有符号16位整数 int32 有符号32位整数 single 单精度 char 字符 logical 逻辑型(二值)

    数据类型转换

    B = data_class_name(A)

    比如

    >> C = [1.4 1.5] >> D = uint8(C)
  • 5.图像类型分为:
  • Intensity image 灰度图 Binary image 二值图 Indexed image 索引图 RGB image 彩色图
  • 在灰度图中每个像素可以是整型、浮点型或者逻辑型。图像类型的像素类型可以转换

    function to from im2uint8 uint8 logical,uint8,uint16,double im2uint16 uint16 logical,uint8,uint16,double mat2gray double double im2double double logical,uint8,uint16,double im2bw logical uint8,uint16,double

    比如

    g = mat2gray(A, [Amin, Amax]); g = mat2gray(A); g = im2double(h); g = im2bw(f, T)
    其中A是浮点型的图像,Amin和Amax是浮点数的范围,h和f是任意类型的图像,T是分割的阈值。

 

  • 6.数组(向量)索引:创建向量(数组):

    >> v = [1 3 5 7 9 11 13]

    用小括号对向量进行索引(取数组中的某个元素):

    >> v(2)

    转置(将行向量通过转置变成列向量):

    >> w = v.'

    取向量其中的一部分:

    >> v(1:3) 第1个到第3个 >> v(2:4) >> v(3:end) 第3个到最后一个 >> v(1:end) >> v(:) 全部 >> v(1:2:end) 第1个到最后一个,每次增加2 >> v(end:-2:1) 最后一个到第1个,每次减2

    其中end总是表示最后一个。

    >> x = linspace(1, 5, 10) >> v([1 4 5])
    linspace函数产生一个范围内的平均分布。

 

  • 7.矩阵索引:创建矩阵

    >> A = [1 2 3; 4 5 6; 7 8 9]

    取矩阵中的一个元素

    >> A(2, 3)

    取矩阵中的一行或者一列

    >> C3 = A(:, 3) >> R2 = A(2, :)

    取矩阵中某些行某些列

    >> T2 = A(1:2, 1:3)

    对矩阵中某些元素进行赋值:

    >> B = A; >> B(:, 3) = 0

    用end表示最后一行或者最后一列:

    >> A(end, end) 最后一行最后一列 >> A(end, end-2) 最后一行倒数第三列 >> A(2:end, end:-2:1) 第2行到最后一行,最后一列到第一列,每次减2 >> E = A([1 3], [2 3]) 第1、3行,第2、3列 >> D = logical([1 0 0; 0 0 1; 0 0 0]) >> A(D) 取A中由D指定的位置上的元素 >> v = T2(:) 把矩阵变成一个向量 >> s = sum(A(:)) 求和 >> sum(sum(A))

    可以把矩阵操作用在图像上

    >> f = imread('filename'); >> fp = 矩阵列倒转 >> imshow(fp) >> fc = >> imshow(fc) >> fs = >> imshow(fs) >> plot(f(512,:))

    矩阵可以是多维的,用size看矩阵大小,用ndims命令常看矩阵的维数

    >> size(A, 1) >> ndims(A)
  • 8.一些常用的矩阵

    zeroes(M, N) ones(M, N) true(M, N) false(M, N) magic(M) rand(M, N) randn(M, N)

    其中M、N表示矩阵的行数和列数。比如

    >> A = 5 * ones(3, 3) >> magic(3) >> B = rand(2, 4)
  • 9.函数:可以把一系列的MATLAB语句或者一个带参数的函数放在扩展名叫做m的文件中。一个带函数的m文件有一下部分组成

    函数定义行 H1行 帮助部分 函数体 注释

    函数定义行的格式是

    function [outputs] = name(inputs)

    比如要写一个函数计算两个图像的和以及乘积

    function [s, p] = sumprod(f, g)

    其中f和g是输入的图像,而s是和,p是乘积。返回值用中括号括起来,如果返回值只有一个,可以省略中括号。如果函数没有输出,则中括号和等号都可以省略。函数名字的命名规则和C语言是相同的。定义好的函数可以在命令行调用:

    >> [s, p] = sumprod(f, g);

    也可以被其它函数调用。如果只有一个返回值,调用时中括号也是可以省略的,比如

    >> y = sum(x);

    H1行是文本的第一行,是一个单行的注释,紧跟在函数定义行后面,之间不能有空行。比如

    % SUMPROD Computes the sum and product of two images.

    百分号开始的文字表示注释。当使用帮助命令

    >> help function_name

    时,这个H1行会被首先显示出来。如果使用lookfor命令,则会在所有H1行中查找指定的关键字。这一行应该提供这个函数功能的一个概述。帮助部分是紧跟在H1后的文本块,中间没有空行,用来提供对这个函数更详细的帮助说明。在使用help命令时会显示所有这部分内容。这部分内容由注释语句构成,全部由%开始。接下来第一个非注释语句表示函数体的开始。函数体包含进行计算的语句和给返回值赋值的语句。函数题中的所有注释(百分号开始的行)被认为是普通的注释,不是H1或者帮助部分。m文件可以用任何文本编辑器创建和编辑,只要用.m扩展名保存在MATLAB可以搜索到的路径里面。另一个创建和编辑函数的方法是在命令行输入edit命令,比如

    >> edit sumprod
    这命令会编辑已经存在的sumprod.m文件,如果没有则自动在当前目录中创建一个sumprod.m并开始编辑。

[1] [2]  下一页

  • 上一篇文章:matlab开发过程中的tips
  • 下一篇文章:matlab语法
  • 文章评论 (评论内容只代表网友观点,与本站立场无关!)

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

             (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 -