matlab图像处理读书.docx

上传人:b****5 文档编号:29864107 上传时间:2023-07-27 格式:DOCX 页数:17 大小:20.61KB
下载 相关 举报
matlab图像处理读书.docx_第1页
第1页 / 共17页
matlab图像处理读书.docx_第2页
第2页 / 共17页
matlab图像处理读书.docx_第3页
第3页 / 共17页
matlab图像处理读书.docx_第4页
第4页 / 共17页
matlab图像处理读书.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

matlab图像处理读书.docx

《matlab图像处理读书.docx》由会员分享,可在线阅读,更多相关《matlab图像处理读书.docx(17页珍藏版)》请在冰豆网上搜索。

matlab图像处理读书.docx

matlab图像处理读书

1.     MATLAB中图像处理的一些简单函数

A、imread

根据图像数据矩阵解释方法的不同,MATLAB把其处理为4类:

亮度图像(Intensityimages)、二值图像(Binaryimages)、索引图像(Indexedimages)、RGB图像(RGBimages)。

(1)灰度图像

一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。

若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[065536]。

若图像是double类,则像素取值就是浮点数。

规定双精度型归一化亮度图像的取值范围是[01]

示例图像名:

cell.tifcameraman.tifrice.png

A=imread(‘cell.tif’);

imshow(A)

(2)二值图像

一幅二值图像是一个取值只有0和1的逻辑数组。

而一幅取值只包含0和1的uint8类数组,在MATLAB中并不认为是二值图像。

使用logical函数可以把数值数组转化为二值数组或逻辑数组。

创建一个逻辑图像,其语法为:

B=logical(A),其中,B是由0和1构成的数值数组。

要测试一个数组是否为逻辑数组,可以使用函数:

islogical(c),若C是逻辑数组,则该函数返回1;否则,返回0。

示例图像名:

circles.png

B=imread(‘circles.png’);

imshow(B)

(3)索引图像

索引颜色通常也称为映射颜色,在这种模式下,颜色都是预先定义的,并且可供选用的一组颜色也很有限,索引颜色的图像最多只能显示256种颜色。

一幅索引颜色图像在图像文件里定义,当打开该文件时,构成该图像具体颜色的索引值就被读入程序里,然后根据索引值找到最终的颜色。

一个典型的索引图像可以用windows自带的画图软件以256色位图格式保存的方法生成。

示例图像名:

canoe.tif

[I,map]=imread(‘canoe.tif’);

imshow(I,map)

(4)RGB图像

一幅RGB图像就是彩色像素的一个M×N×3数组,其中每一个彩色相似点都是在特定空间位置的彩色图像相对应的红、绿、蓝三个分量。

按照惯例,形成一幅RGB彩色图像的三个图像常称为红、绿或蓝分量图像。

令fR,fG和fB分别代表三种RGB分量图像。

一幅RGB图像就利用cat(级联)操作将这些分量图像组合成彩色图像:

rgb_image=cat(3,fR,fG,fB)。

在操作中,图像按顺序放置。

示例图像名:

autumn.tiffootball.jpg

C=imread(‘autumn.tif’);

imshow(C)

B、imwrite

imwrite函数用于输出图像,其语法格式为:

imwrite(X,map,filename,fmt)

imwrite(X,map,filename,fmt)按照fmt指定的格式将图像数据矩阵X和调色板map写入文件filename。

C、imfinfo

imfinfo函数用于读取图像文件的有关信息,其语法格式为

imfinfo(filename,fmt)

imfinfo函数返回一个结构info,它反映了该图像的各方面信息,其主要数据包括:

文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图像的类型等。

 

2.MATLAB中图像文件的显示

imshow

imshow函数是最常用的显示各种图像的函数,其语法如下:

imshow(X,map)

其中X是图像数据矩阵,map是其对应的颜色矩阵,若进行图像处理后不知道图像数据的值域可以用[]代替map。

(1) 二进制(二值)图像显示方法,在MATLAB中一幅二值图像是uint8或双精度的,该矩阵仅包含0和1。

如果希望工具箱中的函数能将图像理解为二进制的,那么所有数据都要是逻辑数据,必须对其进行设置(将所有数据标志均设置on).可以对数据利用“~”取反操作实现图像逆转即黑白反色。

(2) 灰度图像的显示方法,正常情况下无需指定灰度图像的调色板格式。

可以是使用imshow函数指定要显示灰度级数目,格式imshow(I,n),n为指定的灰度级数目。

用户也可以指定数据的范围,格式imshow(I,[lowhigh])其中low和high参数分别为数据数组的最小值和最大值。

如果为空矩阵([]),那么imshow函数将自动进行数据标度。

(3) 索引图像,imshow(x,map)对于x的每个个像素,imshow显示存储map中相应行的颜色。

(4)RGB图像的显示,它直接对颜色进行描述而不使用调色板,格式imshow(RGB)。

RGB(:

,:

,1) RGB(:

,:

,2)  RGB(:

,:

,3)

(5) 特殊显示,如多幅图像的显示,需要显示多幅图像时。

可以使用figure语句,它的功能就是重新打开一个图像显示窗口。

例:

I=imread(‘rice.tif’);

imshow(I);

J=imread(‘flowers.tif’);

figure,imshow(J);

也可以将多幅图像显示在同一个单独的图像窗口中,有两种方法:

一种是联合imshow和subplot函数;另一种是联合使用subimage函数和subplot函数,subplot(m,n,p)这种格式将图形窗口划分为m*n个矩形显示区域并激活第p个显示区域。

A

[x1,map1]=imread('trees.tif');

[x2,map2]=imread('forest.tif');

subplot(1,2,1),imshow(x1,map1)

subplot(1,2,2),imshow(x2,map2)

B

[x1,map1]=imread('trees.tif');

[x2,map2]=imread('forest.tif');

subplot(1,2,1),subimage(x1,map1)

subplot(1,2,2),subimage(x2,map2)

3.MATLAB中灰度直方图的显示

MATLAB图像处理工具箱提供了imhist函数来计算和显示图像的直方图,imhist函数的语法格式为:

imhist(I,n)

imhist(X,map)

其中imhist(I,n)计算和显示灰度图像I的直方图,n为指定的灰度级数目,默认值为256。

imhist(X,map)计算和显示索引色图像X的直方图,map为调色板。

例:

I=imread('rice.tif');

imshow(I)

figure,imhist(I)

4.对比度增强

如果原图像f(x,y)的灰度范围是[m,M],我们希望调整后的图像g(x,y)的灰度范围是[n,N],那么下述变换,就可以实现这一要求。

MATLAB图像处理工具箱中提供的imadjust函数,可以实现上述的线性变换对比度增强。

Imadjust函数的语法格式为:

J=imadjust(I,[low_inhigh_in],[low_outhigh_out])

J=imadjust(I,[low_inhigh_in],[low_outhigh_out])返回图像I经过直方图调整后的图像J,[low_inhigh_in]为原图像中要变换的灰度范围,[low_outhigh_out]指定了变换后的灰度范围。

其详细的用法可参见《计算机图像处理与识别技术》。

例:

I=imread('pout.tif');

J=imadjust(I,[0.30.7],[]);

imshow(I),figure,imshow(J)

5.图像类型转换:

图像类型之间的转换有时非常有用。

MATLAB提供的图像类型转换函数

函数

功能

dither

使用抖动方法,根据灰度图像船舰二进制图像和根据RGB图像创建索引图像

 gray2ind

根据一幅灰度图像创建索引图像

 grayslice

使用阈值截取方法,根据一幅灰度图像创建索引图像

 im2bw

使用阈值截取方法,根据一幅灰度图像,索引图像或RGB图像创建二进制图像

 ind2gray

根据一幅索引图像创建一幅灰度图像

 ind2rgb

根据一幅索引图像创建一幅RGB图像

 mat2gray

通过数据缩放,在根据矩阵数据创建一幅灰度图像

 rgb2gray

根据一幅RGB图像创建一幅灰度图像

 rgb2ind

根据一幅RGB图像创建一幅索引图像

 

上表中函数有类似的调用格式:

函数的输入参数是图像数据矩阵(如果是索引图像,那么输入参数还包括调色板),返回值是转换后的函数(包括索引函数的调色板),只有函数im2bw的调用格式不同,其输入参数中还包括一个截取阈值,超过此阈值的像素被截取为1否则为0。

示例:

A、loadtrees

BW=im2bw(X,map,0.4);

imview(X,map),imview(BW)

B、

I=imread('snowflakes.png');

X=grayslice(I,16);

imview(I)

imview(X,jet(16))

6.MATLAB还提供了图像存储类型之间的转换函数

这些函数包含im2doble、im2uint8和im2uint16,这些函数可以自动的进行原始数据的重新标度和偏移.调用格式简单,输入为图像矩阵,输出为转换后的图像:

如:

以下命令将一个描述双精度RGB1图像的矩阵(数据范围为[0,1]转换为uint8的图像矩阵([0,255]范围内)RGB2=im2uint8(rgb1);也可以使用MATLAB函数对图像存储类型进行转换。

例如,double函数可以将uint8或uint16的数据转化为双精度数据。

存储类型之间的转变将改变matlab及其工具箱理解图像数据的方式,如果用户希望转换后得到的数组能够被正确的理解为图像数据,那么转换时需要重新标度或偏移数据。

当使用较少的类型来描述数字图像时,通常可能丢失用户图像的一些信息。

7.图像格式之间的转换

可以间接利用图像读写函数来完成;首先使用imread函数按照原有的图像格式进行图像读取,然后调用imwrite函数对图像进行保存,并指定图像的保存格式。

如将BMP格式转换为PNG格式,

  bitmap=imread(‘mybitmap,bmp’,’bmp’)

  imwrite(‘mybitmap,png’,’png’)

 

 

 

matlab图像处理命令

二值图像操作

 

色图操作

brighten 亮/暗色图

 

cmpermute 色图中颜色的重排

 

colormap 设置色图

 

imapprox 以较少的颜色来近似索引图像

 

rgbplot 绘制RGB色图

 

色彩空间变换

hsv2rgb 饱和色彩色图HSV向红绿蓝色图RGB转换

 

ntsc2rgb 将NTSC制式值转换到RGB颜色空间

 

rgb2hsv RGB色图M向HSV色图cmap转换

 

rgb2ntsc 将RGB颜色空间转换到NTSC制式

 

rgb2ycbcr 将RGB颜色空间转换到YCBCR颜色空间

 

ycbcr2rgb 将YCBCR颜色空间转换到RGB颜色空间

 

图像类型判断及其转换

dither 用抖动法(dithering)转换图像

 

gray2ind 灰度图像向索引图像转换

 

grayslice 设定阀值将灰度图转换为索引图

 

isbw 图像为二值图像则返回真

 

isgray 图像为灰度图像则返回真

 

isind 图像为索引图像则返回真

 

isrgb 图像为RGB图像则返回真

 

im2bw 设定阀值将图像转换为值维图像

 

im2double 将图像数据阵列转换为double型

 

im2uint8 将图像数据阵列转换为uint8型

 

im2uint16 将图像数据阵列转换为uint16型

 

ind2gray 索引图像向灰度图像转换

 

ind2rgb 索引图像向RGB图像转换

 

mat2rgb 将矩阵转换为灰度图

 

rgb2gray RGB图像向灰度图转换

 

rgb2ind RGB图像向索引图像转换

 

图像处理演示函数

 

dctdemo 二维DCT图像压缩演示

 

edgedemo 边缘检测演示

 

firdemo 二维FIR滤波及滤波器演示

 

imadjdemo 灰度及调整和直方图均衡演示

 

landsatdemo 陆地卫星颜色合成演示

 

nrfiltdemo 噪声消除滤波演示

 

qtdemo 四叉树分解演示

 

roidemo 特定区域处理演示

 

图像分析

edge 得到加强图像的边缘

 

qtdecomp 四叉树分解

 

qtgetblk 得到四叉树分解的块值

 

qtsetblk 调整四叉树分解的块值

 

图像增强

histeq 自动调整直方图

 

imadjust 灰度级调整

 

imnoise 引入各种类型的噪声

 

medfilt2 中值滤波

 

ordfilt2 执行二维阶统计滤波

 

wiener2 维纳滤波器的二维滤波

 

线性滤波

conv2 图像卷积

 

convmtx2 计算二维卷积矩阵

 

convn 图像的n维卷积

 

filter2 二维线性滤波

 

fspecial 产生预定义的滤波器

 

medfilt2 中值滤波

 

wiener2 维纳滤波器的二维滤波

 

二维线性滤波器的设计

filter2二维线性滤波

 

fspecial 产生预定义的滤波器

 

fsample 生成滤波器

 

freqz2 计算二维滤波器的频率响应

 

fsamp2 二维FIR滤波器的频率采样设计

 

fwind1 由用户自定义的两个一维窗口生成一个二维窗口滤波器

 

fwind2 由一个已知的二维窗口直接生成一个二维滤波器

 

hamming 创建一个一维窗口

 

freqspace 生成合适的频率点阵矩阵

 

ftrans2 频率变换

 

图像变换

dct 离散余弦变换

 

dct2 计算二维离散余弦变换

 

dctmtx 计算离散余弦变换矩阵

 

dctmtx2 计算二维离散余弦变换矩阵

 

dctdemo 二维离散余弦变图像压缩矩阵

 

fft2 得到二维FFT的结果

 

fftn  N维FFT变换

 

fftshift   FFT变换结果的逆象限

 

iradon      Radon逆变换

 

idct 离散余弦离散余弦变换的逆变换

 

idct2 计算二维离散余弦离散余弦变换的逆变换

 

radon      Radon变换

 

邻域及块处理

blkproc 执行分块操作

 

bestblk 选择用于块处理的块尺寸

 

col2im 对矩阵的列进行块重排

 

colfilt 利用列式函数进行邻域操作

 

im2col 将图像块按列重排

 

nlfilter 执行常规滑动邻域操作

 

图像的区域处理

rolpoly 选定多边形形状的特定区域

 

roifilt2 对图像特定区域进行滤波

 

roifill 指定区域的快速插值

 

roicolor 根据颜色进行

 

 图像显示

 

colorbar 对图像增加颜色条

 

figure 在不同的图像窗口显示不同的图像

 

getimage 从轴上得到图像数据

 

montage 多贞图像一次显示

 

image 显示图像

 

imagesc 显示亮度图像

 

imcontour 显示一幅图画的轮廊图

 

immovie 多帧图像转换为电影

 

imshow 显示各类图像

 

subimage 在一幅图形窗口中显示多个图像

 

subplot 在同一个图形窗口中显示多图

 

truesize 调整图像显示的大小

 

warp 纹理乘图功能

 

zoom 图像的区域缩放

 

图像文件数据输入/输出

imfinfo 查询图像文件信息

 

imread 从图像文件中读数据

 

imwrite 将数据写入到图像文件中

 

图像的几何操作

imcrop 裁剪余弦中的一部分

 

interp2 二维数据插补

 

imresize 同于改变图像尺寸

 

imrotate 用于进行图像的旋转

 

像值与统计

corr2 计算尺寸相同的两个图像矩阵的相关系数

applylut 利用查找表执行邻域操作

 

bwarea 返回一幅二值图像的面积

 

bweuler 对图像的拓扑结构的测量

 

bwfill 进行区域的填充

 

bwlabel 对图像中不同目标进行标注

 

bwmorph 一系列的膨胀与腐蚀操作

 

bwperim 决定二值图像中目标对象的轴长

 

bwselect 对目标进行操作

 

dilate 二值图像的膨胀

 

erode 二值图像的腐蚀

 

makelut 创建查找表

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1