MATLAB部分函数使用方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

读取图像:用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

显示图像:用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, [])

可以使动态范围比较窄的图像显示更清楚。

写图像。用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

数据类型。MA TLAB的数据类型包括:

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)

图像类型分为:

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 是分割的阈值。

数组(向量)索引:创建向量(数组):

>> 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函数产生一个范围内的平均分布。

矩阵索引:创建矩阵

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

取矩阵中的一个元素

>> A(2, 3)

相关文档
最新文档