第4章MATLAB图像处理工具箱
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
imwrite(X, map, ‘lena.bmp’, ‘bmp’)
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('部分')
第4章 图像处理工具箱
浏览图像处理工具箱:? –>image processing toolbox
4.1 图像处理工具箱包含6个部分:
Getting started:工具箱概述,图像读写实例、 图像分析实例、寻求帮助、图像来源
User’s guide:用户向导简介,图像处理工具 Functions:图像处理函数库 Examples:图像处理实例分类汇总 Demos:图像处理标准算法的M文件样例。 Release Notes:图像处理工具箱版本
图像处理工具箱主要操作有:
图像数据读取和保存 图像的显示 创建GUI 图像几何变换 图像滤波 图像增强 图像分析 图像合成 图像配准 图像分割 图像恢复 彩色图像处理 邻域和快处理 形态学处理 图像域变换 图像ROI处理
4.3 Matlab图像类型转换
索引图像
灰度图像
转换效果图
1.rgb2ind函数
功能:将真彩色图像转换成索引色图像。 格式:[X,map] = rgb2ind(RGB,n) 例: RGB=imread('autumn.tif'); [X,map]=rgb2ind(RGB,128) imshow(RGB); figure,imshow(X,map);
2. dither函数
I=imread('autumn.tif'); map=pink(1024); X=dither(I,map); imshow(I); figure, imshow(X,map); colorbar
dither还可以把灰度图像→二值图像
灰度图像抖动成二值图像 格式: bw = dither(I)
info = Filename: 'C:\Program
Files\MATLAB\R2015b\toolbox\images\imdata\autumn.tif' FileModDate: '13-4月-2015 01:23:12' FileSize: 214108 Format: 'tif'
FormatVersion: [] Width: 345
imdata = imread('ngc6543a.jpg'); image(imdata)
读取yellowlily.jpg图像,求 像素数目和第一个像素的G 值。
2 图形图像文件的写入(保存)
imwrite函数可以完成图形图像文件的写入操作, 其语法为:
imwrite(A, ‘filename.fmt’) imwrite(A, ‘filename’, ‘fmt’) imwrite(X, map, ‘filename’, ‘fmt’)
ind2gray函数
功能:将索引图像转换成灰度图像。 格式:I= ind2gray(X, map)
[X,map]=imread('forest.tif');
I = ind2gray(X,map);
%将索引图像转换为灰度图像
figure,imshow(X,map); %索引图像显示
figure,imshow(I);
rgb2gray
功能:将一幅真彩色图像转换成灰度图像。 格式:I= rgb2gray(RGB)
例: X=imread('football.jpg'); %读取RGB图像 I=rgb2gray(X); %将RGB图像转换为灰度图像 subplot(121),imshow(X); %显示原RGB图像 subplot(122),imshow(I); %显示转换后灰度图像
3 图形图像文件信息的查询
imfinfo函数用于从图像文件中查询其信息。所获取
信息依文件类型不同而不同,至少包含下面内容
文件名
文件格式
文件格式的版本号
文件修改时间
文件的字节大小
图像的宽度(像素)
图像的长度(像素)
每个像素的位数
图像类型(RGB图像、灰度图像还是索引图像)
imfinfo('autumn.tif')
imshow(I,[low high])
其中low、high分别为数据的最小和最大值。
低于low的灰度值显示黑色;高于high的灰度值显 示白色。
RGB图像及其显示
imshow函数显示RGB图像的调用格式如下,
imshow(RGB)
参 数 RGB 是 m×n×3 的 数 组 。 imshow 显 示 数 值 (r,c,1∶3)所描述像素(r,c)。每个屏幕像素使 用24位颜色系统直接显示真彩图像,系统给每个像素 的红、绿、蓝颜色分量分配8位(256级),这样就有 1000多万种颜色(224)。
Height: 206 BitDepth: 24 ColorType: 'truecolor' FormatSignature: [73 73 42 0] ByteOrder: 'little-endian' NewSubFileType: 0 BitsPerSample: [8 8 8] Compression: 'Uncompressed' PhotometricInterpretation: 'RGB' StripOffsets: [1x30 double] SamplesPerPixel: 3 RowsPerStrip: 7 StripByteCounts: [1x30 double] XResolution: 72 YResolution: 72 ResolutionUnit: 'Inch' Colormap: [] PlanarConfiguration: 'Chunky' TileWidth: [] TileLength: [] TileOffsets: [] TileByteCounts: [] Orientation: 1 FillOrder: 1 GrayResponseUnit: 0.0100 MaxSampleValue: [255 255 255] MinSampleValue: [0 0 0] Thresholding: 1
1 图形图像文件的读取
函数imread可完成图形图像文件的读取操作,其 语法如下
一般:A=imread(‘filename’) A=imread(‘filename’, ‘fmt’)
索引图像:[X, map]=imread(‘filename’, ‘fmt’)
[X, map]=imread(‘m83.tif’, ‘tif’)
2. grayslice函数
功能:通过设定阈值将灰度图像转换成索引图像。 格式:X=grayslice(I,n)
I = imread('coins.png'); X = grayslice(I,32); %将灰度图像转换为索引图像 figure,imshow(I); %显示原图像 figure,imshow(X,jet(32)); %jet(M)是相当于colormap, 是一个M×3的色图数组,
X=ind2rgb(I,map); imshow(I,map); figure,imshow(X);
练习:将索引图像kids.tif转换成真彩色图像
灰度图像→索引图像 1. 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);
Offset: 213642 ImageDescription: 'Copyright The MathWorks, Inc.'
4 图像文件的显示
图像显示函数imshow。其语法格式如下
灰度图像 imshow(I)
其中n为灰度级数 目,缺省值为256。
imshow(I, n)
[low high]为图 像数据的值域。
%灰度图像显示
mat2gray函数
功能:将一个数据矩阵转换成一幅灰度图像。 格式:I=mat2gray(A)
X=magic(256); I= mat2gray(X); imshow(I)
4.4 图像文件的读写和查询
imread:读取图形文件格式的图像; imwrite:写入图形文件格式的图像; imfinfo:获取图像的信息; load\save:以Mat文件加载或保存矩阵数据; imshow/image:显示加载到Matlab中的图像。
imshow函数显示ቤተ መጻሕፍቲ ባይዱ度图像
(1) 灰度图像显示最基本的调用格式 imshow(I)
Matlab 中 imshow 函 数 使 用 一 个 灰 度 级 系 统 调 色 板 (R=G=B)来显示灰度图像。如果I是double型,若像素值 为0.0,则显示为黑色,1.0则显示为白色,0.0和1.0之间的 像素值将显示为灰影。
数据矩阵
真彩图像
二值图像
图像转换函数表
函数 gray2ind ind2gray ind2rgb rgb2gray rgb2ind mat2gray im2bw
dither
grayslice
不熟悉,用help
功能
灰度图像→索引图像 索引图像→灰度图像 索引图像→RGB图像 RGB图像→灰度图像 RGB图像→索引图像 数值矩阵→灰度图像 通过设定亮度阈值,其它图 像→二值图像 灰度图像→二值图像 RGB图像→索引图像 灰度图像→索引图像
imshow(I, [low high])
二值图像 imshow(BW)
索引图像 imshow(X, map)
真彩色图像 imshow(RGB)
索引图像及其显示
索引图像包括数据矩阵X和颜色映像矩阵map。 其中map是一个p×3的数据矩阵,其每个元素的值均
为[0, 1]之间双精度浮点型数据。map矩阵的每一 行分别表示红色、绿色和蓝色的颜色值。
im2bw函数
功能:将灰度图像、索引色图像和真彩色图像→二值图像。 格式:BW=im2bw(I, level)
BW=im2bw( X, map, level)
BW=im2bw(RGB, level) level是一个归一化阈值,取值在[0,1]。
I=imread('pears.png'); BW=im2bw(I,0.5); %将RGB图像转换为二值图像 subplot(121),imshow(I); %显示原图像 subplot(122),imshow(BW);%显示转换后二值图像
例如一幅包含256色的索引图像,使用一个仅有 16色的调色板显示,则所有数值大于或等于15的像 素都将被显示为调色板的最后一个颜色。
借助不同的调色板显示图像, X=imread('cameraman.tif');
map=pink(256); imshow(X,map); colorbar;%显示颜色条
二值图像及其显示
显示二值图像用如下语句,
I=imread('rice.png'); bw=dither(I); imshow(I); figure,imshow(bw);
索引图像→真彩色图像 ind2rgb函数
功能:将索引图像转换成真彩色图像。 格式:RGB=ind2rgb(X, map) 例:[I,map]=imread('m83.tif');
(2) 使用明确指定的灰度级数目 imshow(I, n) 以下语句将显示一幅32个灰度级的图像I。 imshow(I, 32) (3) 某些情况下,可能将一些超出数据惯例范围 的数据显示为一幅灰度图像
☆ 对于double型数组为[0,1],对于uint8型 数组为[0,255]
为了将超过数据范围的数据显示为图像,用户可 以直接定义数据范围,其调用格式如下,
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('部分')
第4章 图像处理工具箱
浏览图像处理工具箱:? –>image processing toolbox
4.1 图像处理工具箱包含6个部分:
Getting started:工具箱概述,图像读写实例、 图像分析实例、寻求帮助、图像来源
User’s guide:用户向导简介,图像处理工具 Functions:图像处理函数库 Examples:图像处理实例分类汇总 Demos:图像处理标准算法的M文件样例。 Release Notes:图像处理工具箱版本
图像处理工具箱主要操作有:
图像数据读取和保存 图像的显示 创建GUI 图像几何变换 图像滤波 图像增强 图像分析 图像合成 图像配准 图像分割 图像恢复 彩色图像处理 邻域和快处理 形态学处理 图像域变换 图像ROI处理
4.3 Matlab图像类型转换
索引图像
灰度图像
转换效果图
1.rgb2ind函数
功能:将真彩色图像转换成索引色图像。 格式:[X,map] = rgb2ind(RGB,n) 例: RGB=imread('autumn.tif'); [X,map]=rgb2ind(RGB,128) imshow(RGB); figure,imshow(X,map);
2. dither函数
I=imread('autumn.tif'); map=pink(1024); X=dither(I,map); imshow(I); figure, imshow(X,map); colorbar
dither还可以把灰度图像→二值图像
灰度图像抖动成二值图像 格式: bw = dither(I)
info = Filename: 'C:\Program
Files\MATLAB\R2015b\toolbox\images\imdata\autumn.tif' FileModDate: '13-4月-2015 01:23:12' FileSize: 214108 Format: 'tif'
FormatVersion: [] Width: 345
imdata = imread('ngc6543a.jpg'); image(imdata)
读取yellowlily.jpg图像,求 像素数目和第一个像素的G 值。
2 图形图像文件的写入(保存)
imwrite函数可以完成图形图像文件的写入操作, 其语法为:
imwrite(A, ‘filename.fmt’) imwrite(A, ‘filename’, ‘fmt’) imwrite(X, map, ‘filename’, ‘fmt’)
ind2gray函数
功能:将索引图像转换成灰度图像。 格式:I= ind2gray(X, map)
[X,map]=imread('forest.tif');
I = ind2gray(X,map);
%将索引图像转换为灰度图像
figure,imshow(X,map); %索引图像显示
figure,imshow(I);
rgb2gray
功能:将一幅真彩色图像转换成灰度图像。 格式:I= rgb2gray(RGB)
例: X=imread('football.jpg'); %读取RGB图像 I=rgb2gray(X); %将RGB图像转换为灰度图像 subplot(121),imshow(X); %显示原RGB图像 subplot(122),imshow(I); %显示转换后灰度图像
3 图形图像文件信息的查询
imfinfo函数用于从图像文件中查询其信息。所获取
信息依文件类型不同而不同,至少包含下面内容
文件名
文件格式
文件格式的版本号
文件修改时间
文件的字节大小
图像的宽度(像素)
图像的长度(像素)
每个像素的位数
图像类型(RGB图像、灰度图像还是索引图像)
imfinfo('autumn.tif')
imshow(I,[low high])
其中low、high分别为数据的最小和最大值。
低于low的灰度值显示黑色;高于high的灰度值显 示白色。
RGB图像及其显示
imshow函数显示RGB图像的调用格式如下,
imshow(RGB)
参 数 RGB 是 m×n×3 的 数 组 。 imshow 显 示 数 值 (r,c,1∶3)所描述像素(r,c)。每个屏幕像素使 用24位颜色系统直接显示真彩图像,系统给每个像素 的红、绿、蓝颜色分量分配8位(256级),这样就有 1000多万种颜色(224)。
Height: 206 BitDepth: 24 ColorType: 'truecolor' FormatSignature: [73 73 42 0] ByteOrder: 'little-endian' NewSubFileType: 0 BitsPerSample: [8 8 8] Compression: 'Uncompressed' PhotometricInterpretation: 'RGB' StripOffsets: [1x30 double] SamplesPerPixel: 3 RowsPerStrip: 7 StripByteCounts: [1x30 double] XResolution: 72 YResolution: 72 ResolutionUnit: 'Inch' Colormap: [] PlanarConfiguration: 'Chunky' TileWidth: [] TileLength: [] TileOffsets: [] TileByteCounts: [] Orientation: 1 FillOrder: 1 GrayResponseUnit: 0.0100 MaxSampleValue: [255 255 255] MinSampleValue: [0 0 0] Thresholding: 1
1 图形图像文件的读取
函数imread可完成图形图像文件的读取操作,其 语法如下
一般:A=imread(‘filename’) A=imread(‘filename’, ‘fmt’)
索引图像:[X, map]=imread(‘filename’, ‘fmt’)
[X, map]=imread(‘m83.tif’, ‘tif’)
2. grayslice函数
功能:通过设定阈值将灰度图像转换成索引图像。 格式:X=grayslice(I,n)
I = imread('coins.png'); X = grayslice(I,32); %将灰度图像转换为索引图像 figure,imshow(I); %显示原图像 figure,imshow(X,jet(32)); %jet(M)是相当于colormap, 是一个M×3的色图数组,
X=ind2rgb(I,map); imshow(I,map); figure,imshow(X);
练习:将索引图像kids.tif转换成真彩色图像
灰度图像→索引图像 1. 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);
Offset: 213642 ImageDescription: 'Copyright The MathWorks, Inc.'
4 图像文件的显示
图像显示函数imshow。其语法格式如下
灰度图像 imshow(I)
其中n为灰度级数 目,缺省值为256。
imshow(I, n)
[low high]为图 像数据的值域。
%灰度图像显示
mat2gray函数
功能:将一个数据矩阵转换成一幅灰度图像。 格式:I=mat2gray(A)
X=magic(256); I= mat2gray(X); imshow(I)
4.4 图像文件的读写和查询
imread:读取图形文件格式的图像; imwrite:写入图形文件格式的图像; imfinfo:获取图像的信息; load\save:以Mat文件加载或保存矩阵数据; imshow/image:显示加载到Matlab中的图像。
imshow函数显示ቤተ መጻሕፍቲ ባይዱ度图像
(1) 灰度图像显示最基本的调用格式 imshow(I)
Matlab 中 imshow 函 数 使 用 一 个 灰 度 级 系 统 调 色 板 (R=G=B)来显示灰度图像。如果I是double型,若像素值 为0.0,则显示为黑色,1.0则显示为白色,0.0和1.0之间的 像素值将显示为灰影。
数据矩阵
真彩图像
二值图像
图像转换函数表
函数 gray2ind ind2gray ind2rgb rgb2gray rgb2ind mat2gray im2bw
dither
grayslice
不熟悉,用help
功能
灰度图像→索引图像 索引图像→灰度图像 索引图像→RGB图像 RGB图像→灰度图像 RGB图像→索引图像 数值矩阵→灰度图像 通过设定亮度阈值,其它图 像→二值图像 灰度图像→二值图像 RGB图像→索引图像 灰度图像→索引图像
imshow(I, [low high])
二值图像 imshow(BW)
索引图像 imshow(X, map)
真彩色图像 imshow(RGB)
索引图像及其显示
索引图像包括数据矩阵X和颜色映像矩阵map。 其中map是一个p×3的数据矩阵,其每个元素的值均
为[0, 1]之间双精度浮点型数据。map矩阵的每一 行分别表示红色、绿色和蓝色的颜色值。
im2bw函数
功能:将灰度图像、索引色图像和真彩色图像→二值图像。 格式:BW=im2bw(I, level)
BW=im2bw( X, map, level)
BW=im2bw(RGB, level) level是一个归一化阈值,取值在[0,1]。
I=imread('pears.png'); BW=im2bw(I,0.5); %将RGB图像转换为二值图像 subplot(121),imshow(I); %显示原图像 subplot(122),imshow(BW);%显示转换后二值图像
例如一幅包含256色的索引图像,使用一个仅有 16色的调色板显示,则所有数值大于或等于15的像 素都将被显示为调色板的最后一个颜色。
借助不同的调色板显示图像, X=imread('cameraman.tif');
map=pink(256); imshow(X,map); colorbar;%显示颜色条
二值图像及其显示
显示二值图像用如下语句,
I=imread('rice.png'); bw=dither(I); imshow(I); figure,imshow(bw);
索引图像→真彩色图像 ind2rgb函数
功能:将索引图像转换成真彩色图像。 格式:RGB=ind2rgb(X, map) 例:[I,map]=imread('m83.tif');
(2) 使用明确指定的灰度级数目 imshow(I, n) 以下语句将显示一幅32个灰度级的图像I。 imshow(I, 32) (3) 某些情况下,可能将一些超出数据惯例范围 的数据显示为一幅灰度图像
☆ 对于double型数组为[0,1],对于uint8型 数组为[0,255]
为了将超过数据范围的数据显示为图像,用户可 以直接定义数据范围,其调用格式如下,