第4章MATLAB图像处理工具箱

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

8. rgb2gray函数
功能:将一幅真彩色图像转换成灰度图像。
格式:I= rgb2gray(RGB)
例:RGB=imread('autumn.tif');
X=rgb2gray(RGB);
imshow(RGB);
figure,imshow(X);
转换效果图
9. rgb2ind函数
功能:将真彩色图像转换成索引色图像。 格式:[X,map] = rgb2ind(RGB,n)
图2 索引色图像的结构
索引图像的数据格式
双精度类:Double (每个元素占8个字节) 整数类:Uint8 (每个元素占1个字节)
图像数组大小:m×n
图像元素取值:[1,p]
图像数组大小:m×n
图像元素取值:[0,p-1]
调色板矩阵:p×3
调色板矩阵:p×3
索引图像的double与uint8型
2. gray2ind函数
功能:将灰度图像转换成索引图像。 格式:[X,map]= gray2ind(I,n) n的缺省值为64。
I=imread('cameraman.tif'); [X,map]=gray2ind(I,16); subplot(121),imshow(I); subplot(122), imshow(X,map);

imwrite函数可以完成图形图像文件的写入操作, 其语法为: imwrite(A, filename, fmt) imwrite(X, map, filename, fmt)
imwrite(X, map, ‘lena.bmp’, ‘bmp’)

缺省的保存方式:uint8数据格式。 Matlab中许多图 像都是8bit,不需要双精度的浮点数据。

举例:
[X, map]=imread(‘trees.tif’); image(X) colormap(map); 其效果等同于: imshow(X, map)

Hale Waihona Puke Baidu
MATLAB提供了一些预定义的彩色表

imshow(X, hsv)

imshow(X, autumn)

imshow(X, copper)
第4章 图像灰度变换
Matlab 对图像的处理功能主要集中在它的图像处 理工具箱(Image Processing Toolbox)中。 图像处理工具箱是由一系列支持图像处理操作的 函数组成,可以进行诸如几何操作、线性滤波和滤 波器设计、图像变换、图像分析与图像增强、数学 形态学处理等图像处理操作。


图像序列也可以产生一个四维数组,图像帧的序号在 图像的长、宽、颜色后构成第四维。 一个包含了5幅400×300真彩色图像的序列,大小为 400×300×3×5 一个包含了5幅400×300灰度或是索引图像的序列, 其大小为 400×300×1×5 A=cat (4,A1,A2,A3,A4,A5),4维 提取其中一帧(如第2帧):A(:,:,:,2)
Matlab还支持由多帧图像组成的图像序列
真彩色图像
真彩色图像用 R、G、B 3个分量表示1个像素的颜色,
数据结构是一个 m×n×3 的多维数组。如果读取图像中
(100,50)处像素值,可以查看三元组(100,50,1:3)。 真彩色图像可用双精度存储,亮度值范围是[0,1] 常用存储方法是无符号整型存储 ,亮度值范围为 [0,255]
功能:将灰度图像、索引色图像和真彩色图像转化成二值图像。 格式:BW=im2bw(I, level)
BW=im2bw( X, map, level)
BW=im2bw(RGB, level) level是一个归一化阈值,取值在[0,1]。
I=imread('autumn.tif'); X=im2bw(I,0.5); imshow(I); figure,imshow(X);
3 图形图像文件信息的查询

imfinfo函数用于从图像文件中查询其信息。所获取 信息依文件类型不同而不同,至少包含下面内容

文件名
文件格式的版本号 文件的字节大小 图像的长度(像素)
文件格式
文件修改时间 图像的宽度(像素) 每个像素的位数
图像类型(RGB图像、灰度图像还是索引图像) imfinfo('autumn.tif')
5.ind2gray函数
功能:将索引图像转换成灰度图像。
格式:I= ind2gray(X, map)
6.ind2rgb函数
功能:将索引色图像转换成真彩色图像。 格式:RGB=ind2rgb(X, map)
例:[I,map]=imread('m83.tif');
X=ind2rgb(I,map);
3. grayslice函数
功能:通过设定阈值将灰度图像转换成索引色图像。 格式:X=grayslice(I,n) I=imread('cameraman.tif'); X=grayslice(I,16); imshow(I); figure,imshow(X,bone(16));
4.im2bw函数

imshow(X, gray(64))
灰度图像

存储灰度图像只需要 一个数据矩阵,数据 类 型 可 以 是 double 也 可以是uint8。 存储时会使用一个默 认的调色板来显示图 像。

二值图像

与灰度图像相同,二值图像只需一个数据矩阵,每 个像素只有 2个灰度值。可以采用 uint8或double类型 存储,工具箱中以二值图像作为返回结果的函数都 使用uint8类型。


4.3 Matlab图像类型转换
索引图像 灰度图像 数据矩阵
真彩图像
二值图像
1.dither函数
功能:图像抖动 把RGB图像转换成索引图像 把灰度图像转换成二值图像。 格式:X = dither(RGB,map)
BW = dither(I)
(1)RGB图像抖动成索引图像
I=imread('autumn.tif');
map=pink(1024);
X=dither(I,map); imshow(I); figure, imshow(X,map); colorbar
(2)灰度图像抖动成二值图像
I=imread('rice.png'); bw=dither(I);
imshow(I);
figure,imshow(bw);
图像处理工具箱主要有: * * * * * * Image Acquisition Toolbox(图像采集工具箱) Image Processing Toolbox(图像处理工具箱) Signal Processing Toolbox(信号处理工具箱) Wavelet Toolbox(小波分析工具箱) Statistics Toolbox(统计工具箱) Bioinformatics Toolbox(生物信息学工具箱)

>>imshow(X, map)
或者: >>image(X) %用系统当前的颜色表显示索引图像 %将系统当前颜色表设置为map >>colormap(map)
举例: [X, map]=imread(‘trees.tif’); image(X)

其效果等同于: imshow(X, colormap)
图1
真彩色图像的结构
真彩色图像数据格式
双精度类: Double (每个像素占8个字节) 数组大小:m×n×3 (:,:,1)-红色分量 (:,:,2)-绿色分量 (:,:,3)-蓝色分量 像素取值:[0,1] 整数类:Uint8 (每个像素占1个字节) 数组大小:m×n×3 (:,:,1)-红色分量 (:,:,2)-绿色分量 (:,:,3)-蓝色分量 像素取值:[0,255]
imshow(I,map);
figure,imshow(X);
7.mat2gray函数
功能:将一个数据矩阵转换成一幅灰度图像。 格式:I=mat2gray(A) I = imread('rice.png'); J = filter2(fspecial('sobel'), I); K = mat2gray(J); figure, imshow(I), figure, imshow(K)
1 2 0 2 1 3
3
4
图像数据
double 调色板 0 0.0627 0 0.2902 0.3820 0 0.0627 0 0.627 0.3578
uint8 0 0 1 0.627 1
索引图像的表示方法

读入一幅索引图像的语句如下: 显示一幅索引图像,可使用语句:
>>[X, map]=imread(‘trees.tif’);
info =
Filename: [1x64 char] FileModDate: '01-十月-1996 16:19:44' FileSize: 27387 Format: 'jpg' FormatVersion: '' Width: 600 Height: 650 BitDepth: 24 ColorType: 'truecolor' FormatSignature: '' NumberOfSamples: 3 CodingMethod: 'Huffman' CodingProcess: 'Sequential' Comment: {[1x69 char]}
例: RGB=imread('autumn.tif'); [X,map]=rgb2ind(RGB,128)
imshow(RGB);
figure,imshow(X,map);
4.4 图像文件的读写和查询

imread:读取图形文件格式的图像;


imwrite:写入图形文件格式的图像;
imfinfo:获取图像的信息; load\save:以Mat文件加载或保存矩阵数据; imshow:显示加载到Matlab中的图像。

imread函数可以从图形文件中以特定位宽读取图像。 读取的大多数图像均为 8bit。加载到内存中时,就存 储在类uint8中。
对于索引图像来说,即使图像阵列的本身为 uint8 或 uint16, imread函数仍然将颜色映像表读取并存储到 一个双精度的浮点类型阵列中。

2 图形图像文件的写入(保存)
A=imread('onion.png'); B=A(50:100,100:150,:); imwrite(B,'onion-part.png') C=imread('onion-part.png'); subplot(1,2,1) image(A);axis image;title('全部') subplot(1,2,2) image(C);axis image;title('部分')
图像序列





图像处理工具箱支持将多帧图像连接成图像序列。 使用cat函数将分散图像合并成图像序列,前提是各 图像尺寸必须相同。 将 A1 、 A2 、 A3 、 A4 、 A5 五幅图像合并成一个图像序 列A,Matlab语句为 A=cat (1,A1,A2,A3,A4,A5), 1维,纵向排列 A=cat (2,A1,A2,A3,A4,A5),2维,横向排列 A=cat (3,A1,A2,A3,A4,A5),3维,竖向排列
RGB图像的表示方法-三幅分量图像合成
索引色图像
索引图像是把像素值作为RGB调色板下标的图像。 索引色图像包含2个结构,一个是调色板map;另一个 是图像数据矩阵X。 调色板是一个有3列和若干行的色彩映像矩阵,矩阵每 行代表一种色彩,通过3个分别代表红、绿、蓝颜色强 度的双精度数,形成一种特定颜色。 图像数据是uint8或是双精度的。 Matlab中调色板的色彩强度是[0,1]中的浮点数,0 代表最暗,1代表最亮。
4.1 MATLAB图像处理程序的特点

上手容易,开发周期短,见效快。
程序代码编写量明显较小 有专门的图像处理工具箱



MATLAB程序不能脱离MATLAB平台而独立存在
4.2
图像处理工具箱的图像类型
图像处理工具箱支持4种图像类型,它们是:
真彩色图像(RGB images) 索引色图像(index images) 灰度图像(intensity images) 二值图像(binary images)
1 图形图像文件的读取

函数imread可完成图形图像文件的读取操作,其 语法如下

一般:A=imread(filename, fmt) 索引图像:[X, map]=imread(filename, fmt)
[X, map]=imread(‘m83.tif’, ‘tif’)
imdata = imread('ngc6543a.jpg'); image(imdata)
相关文档
最新文档