函数小结.docx

上传人:b****6 文档编号:16474774 上传时间:2023-07-13 格式:DOCX 页数:16 大小:22.82KB
下载 相关 举报
函数小结.docx_第1页
第1页 / 共16页
函数小结.docx_第2页
第2页 / 共16页
函数小结.docx_第3页
第3页 / 共16页
函数小结.docx_第4页
第4页 / 共16页
函数小结.docx_第5页
第5页 / 共16页
函数小结.docx_第6页
第6页 / 共16页
函数小结.docx_第7页
第7页 / 共16页
函数小结.docx_第8页
第8页 / 共16页
函数小结.docx_第9页
第9页 / 共16页
函数小结.docx_第10页
第10页 / 共16页
函数小结.docx_第11页
第11页 / 共16页
函数小结.docx_第12页
第12页 / 共16页
函数小结.docx_第13页
第13页 / 共16页
函数小结.docx_第14页
第14页 / 共16页
函数小结.docx_第15页
第15页 / 共16页
函数小结.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

函数小结.docx

《函数小结.docx》由会员分享,可在线阅读,更多相关《函数小结.docx(16页珍藏版)》请在冰点文库上搜索。

函数小结.docx

函数小结

Matlab图像处理小结

(2012-05-1815:

25:

34)

转载▼

标签:

高斯

台中

函数

图像数据

图像文件

分类:

图像处理

经常做做图像处理的东西,时间长了,有些函数就忘了,看到网上有人总结,收藏了。

1.图像和图像数据

缺省情况下,MATLAB将图像中的数据存储为双精度类型(double),64位浮点数,所需存储量很大;MATLAB还支持另一种类型无符号整型(uint8),即图像矩阵中每个数据占用1个字节。

在使用MATLAB工具箱时,一定要注意函数所要求的参数类型。

另外,uint8与double两种类型数据的值域不同,编程需注意值域转换。

从uint8到double的转换

---------------------------------------------

图像类型MATLAB语句

---------------------------------------------

索引色B=double(A)+1

索引色或真彩色B=double(A)/255

二值图像B=double(A)

---------------------------------------------

从double到uint8的转换

---------------------------------------------

图像类型MATLAB语句

---------------------------------------------

索引色B=uint8(round(A-1))

索引色或真彩色B=uint8(round(A*255))

二值图像B=logical(uint8(round(A)))

---------------------------------------------

2.图像处理工具箱所支持的图像类型

2.1真彩色图像

R、G、B三个分量表示一个像素的颜色。

如果要读取图像中(100,50)处的像素值,可查看三元数据(100,50,1:

3)。

真彩色图像可用双精度存储,亮度值范围是[0,1];比较符合习惯的存储方法是用无符号整型存储,亮度值范围[0,255]

2.2索引色图像

包含两个结构,一个是调色板,另一个是图像数据矩阵。

调色板是一个有3列和若干行的色彩映象矩阵,矩阵每行代表一种颜色,3列分别代表红、绿、蓝色强度的双精度数。

注意:

MATLAB中调色板色彩强度[0,1],0代表最暗,1代表最亮。

常用颜色的RGB值

--------------------------------------------

颜色RGB颜色RGB

--------------------------------------------

黑001洋红101

白111青蓝011

红100天蓝0.6701

绿010橘黄10.50

蓝001深红0.500

黄110灰0.50.50.5

--------------------------------------------

产生标准调色板的函数

-------------------------------------------------

函数名调色板

-------------------------------------------------

Hsv色彩饱和度,以红色开始,并以红色结束

Hot黑色-红色-黄色-白色

Cool青蓝和洋红的色度

Pink粉红的色度

Gray线型灰度

Bone带蓝色的灰度

JetHsv的一种变形,以蓝色开始,以蓝色结束

Copper线型铜色度

Prim三棱镜,交替为红、橘黄、黄、绿和天蓝

Flag交替为红、白、蓝和黑

--------------------------------------------------

缺省情况下,调用上述函数灰产生一个64×3的调色板,用户也可指定调色板大小。

索引色图像数据也有double和uint8两种类型。

当图像数据为double类型时,值1代表调色板中的第1行,值2代表第2行……如果图像数据为uint8类型,0代表调色板的第一行,,值1代表第2行……

2.3灰度图像

存储灰度图像只需要一个数据矩阵。

数据类型可以是double,[0,1];也可以是uint8,[0,255]

2.4二值图像

二值图像只需一个数据矩阵,每个像素只有两个灰度值,可以采用uint8或double类型存储。

MATLAB工具箱中以二值图像作为返回结果的函数都使用uint8类型。

2.5图像序列

MATLAB工具箱支持将多帧图像连接成图像序列。

图像序列是一个4维数组,图像帧的序号在图像的长、宽、颜色深度之后构成第4维。

分散的图像也可以合并成图像序列,前提是各图像尺寸必须相同,若是索引色图像,调色板也必须相同。

可参考cat()函数A=cat(4,A1,A2,A3,A4,A5)

3.MATLAB图像类型转换

图像类型转换函数

---------------------------------------------------------------------------

函数名函数功能

---------------------------------------------------------------------------

dither图像抖动,将灰度图变成二值图,或将真彩色图像抖动成索引色图像

gray2ind将灰度图像转换成索引图像

grayslice通过设定阈值将灰度图像转换成索引色图像

im2bw通过设定亮度阈值将真彩色、索引色、灰度图转换成二值图

ind2gray将索引色图像转换成灰度图像

ind2rgb将索引色图像转换成真彩色图像

mat2gray将一个数据矩阵转换成一副灰度图

rgb2gray将一副真彩色图像转换成灰度图像

rgb2ind将真彩色图像转换成索引色图像

----------------------------------------------------------------------------

4.图像文件的读写和查询

4.1图形图像文件的读取

利用函数imread()可完成图形图像文件的读取,语法:

A=imread(filename,fmt)

[X,map]=imread(filename,fmt)

[...]=imread(filename)

[...]=imread(filename,idx)(只对TIF格式的文件)

[...]=imread(filename,ref)(只对HDF格式的文件)

通常,读取的大多数图像均为8bit,当这些图像加载到内存中时,Matlab就将其存放在类uint8中。

此为Matlab还支持16bit的PNG和TIF图像,当读取这类文件时,Matlab就将其存贮在uint16中。

注意:

对于索引图像,即使图像阵列的本身为类uint8或类uint16,imread函数仍将颜色映象表读取并存贮到一个双精度的浮点类型的阵列中。

4.2图形图像文件的写入

使用imwrite函数,语法如下:

imwrite(A,filename,fmt)

imwrite(X,map,filename,fmt)

imwrite(...,filename)

imwrite(...,parameter,value)

当利用imwrite函数保存图像时,Matlab缺省的方式是将其简化道uint8的数据格式。

4.3图形图像文件信息的查询imfinfo()函数

5.图像文件的显示

5.1索引图像及其显示

方法一:

image(X)

colormap(map)

方法二:

imshow(X,map)

5.2灰度图像及其显示

Matlab7.0中,要显示一副灰度图像,可以调用函数imshow或imagesc(即imagescale,图像缩放函数)

(1)imshow函数显示灰度图像

使用imshow(I)或使用明确指定的灰度级书目:

imshow(I,32)

由于Matlab自动对灰度图像进行标度以适合调色板的范围,因而可以使用自定义大小的调色板。

其调用格式如下:

imshow(I,[low,high])其中,low和high分别为数据数组的最小值和最大值。

(2)imagesc函数显示灰度图像

下面的代码是具有两个输入参数的imagesc函数显示一副灰度图像

imagesc(1,[0,1]);

colormap(gray);

imagesc函数中的第二个参数确定灰度范围。

灰度范围中的第一个值(通常是0),对应于颜色映象表中的第一个值(颜色),第二个值(通常是1)则对应与颜色映象表中的最后一个值(颜色)。

灰度范围中间的值则线型对应与颜色映象表中剩余的值(颜色)。

在调用imagesc函数时,若只使用一个参数,可以用任意灰度范围显示图像。

在该调用方式下,数据矩阵中的最小值对应于颜色映象表中的第一个颜色值,数据矩阵中的最大值对应于颜色映象表中的最后一个颜色值。

5.3RGB图像及其显示

(1)image(RGB)

不管RGB图像的类型是double浮点型,还是uint8或uint16无符号整数型,Matlab都能通过image函数将其正确显示出来。

RGB8=uint8(round(RGB64×255));%将double浮点型转换为uint8无符号整型

RGB64=double(RGB8)/255;%将uint8无符号整型转换为double浮点型

RGB16=uint16(round(RGB64×65535));%将double浮点型转换为uint16无符号整型

RGB64=double(RGB16)/65535;%将uint16无符号整型转换为double浮点型

(2)imshow(RGB)参数是一个m×n×3的数组

5.4二进制图像及其显示

(1)imshow(BW)

在Matlab7.0中,二进制图像是一个逻辑类,仅包括0和1两个数值。

像素0显示为黑色,像素1显示为白色。

显示时,也可通过NOT(~)命令,对二进制图象进行取反,使数值0显示为白色;1显示为黑色。

例如:

imshow(~BW)

(2)此外,还可以使用一个调色板显示一副二进制图像。

如果图形是uint8数据类型,则数值0显示为调色板的第一个颜色,数值1显示为第二个颜色。

例如:

imshow(BW,[100;001])

5.5直接从磁盘显示图像

可使用一下命令直接进行图像文件的显示:

imshowfilename

其中,filename为要显示的图像文件的文件名。

如果图像是多帧的,那么imshow将仅显示第一帧。

但需注意,在使用这种方式时,图像数据没有保存在Matlab7.0工作平台。

如果希望将将图像装入工作台中,需使用getimage函数,从当前的句柄图形图像对象中获取图像数据,命令形式为:

rgb=getimage;

1、图像的变换

①fft2:

fft2函数用于数字图像的二维傅立叶变换,如:

i=imread('104_8.tif');

j=fft2(i);

②ifft2:

ifft2函数用于数字图像的二维傅立叶反变换,如:

i=imread('104_8.tif');

j=fft2(i);

k=ifft2(j);

2、模拟噪声生成函数和预定义滤波器

①imnoise:

用于对图像生成模拟噪声,如:

i=imread('104_8.tif');

j=imnoise(i,'gaussian',0,0.02);%模拟高斯噪声

②fspecial:

用于产生预定义滤波器,如:

h=fspecial('sobel');%sobel水平边缘增强滤波器h=fspecial('gaussian');%高斯低通滤波器

h=fspecial('laplacian');%拉普拉斯滤波器h=fspecial('log');%高斯拉普拉斯(LoG)滤波器

h=fspecial('average');%均值滤波器

3、图像的增强

①直方图:

imhist函数用于数字图像的直方图显示,如:

i=imread('104_8.tif');

imhist(i);

②直方图均化:

histeq函数用于数字图像的直方图均化,如:

i=imread('104_8.tif');

j=histeq(i);

③对比度调整:

imadjust函数用于数字图像的对比度调整,如:

i=imread('104_8.tif');

j=imadjust(i,[0.3,0.7],[]);

④对数变换:

log函数用于数字图像的对数变换,如:

i=imread('104_8.tif');

j=double(i);

k=log(j);

⑤基于卷积的图像滤波函数:

filter2函数用于图像滤波,如:

i=imread('104_8.tif');

h=[1,2,1;0,0,0;-1,-2,-1];

j=filter2(h,i);

⑥线性滤波:

利用二维卷积conv2滤波,如:

i=imread('104_8.tif');

h=[1,1,1;1,1,1;1,1,1];

h=h/9;

j=conv2(i,h);

⑦中值滤波:

medfilt2函数用于图像的中值滤波,如:

i=imread('104_8.tif');

j=medfilt2(i);

⑧锐化

(1)利用Sobel算子锐化图像,如:

i=imread('104_8.tif');

h=[1,2,1;0,0,0;-1,-2,-1];%Sobel算子

j=filter2(h,i);

(2)利用拉氏算子锐化图像,如:

i=imread('104_8.tif');

j=double(i);

h=[0,1,0;1,-4,0;0,1,0];%拉氏算子

k=conv2(j,h,'same');

m=j-k;

3、图像边缘检测

①sobel算子如:

i=imread('104_8.tif');j=edge(i,'sobel',thresh)

②prewitt算子如:

i=imread('104_8.tif');j=edge(i,'prewitt',thresh)

③roberts算子如:

i=imread('104_8.tif');j=edge(i,'roberts',thresh)

④log算子如:

i=imread('104_8.tif');j=edge(i,'log',thresh)

⑤canny算子如:

i=imread('104_8.tif');j=edge(i,'canny',thresh)

⑥Zero-Cross算子如:

i=imread('104_8.tif');j=edge(i,'zerocross',thresh)

4、形态学图像处理

①膨胀:

是在二值化图像中“加长”或“变粗”的操作,函数imdilate执行膨胀运算,如:

a=imread('104_7.tif');%输入二值图像

b=[010;111;010];

c=imdilate(a,b);

②腐蚀:

函数imerode执行腐蚀,如:

a=imread('104_7.tif');%输入二值图像

b=strel('disk',1);

c=imerode(a,b);

③开运算:

先腐蚀后膨胀称为开运算,用imopen来实现,如:

a=imread('104_8.tif');

b=strel('square',2);

c=imopen(a,b);

④闭运算:

先膨胀后腐蚀称为闭运算,用imclose来实现,如:

a=imread('104_8.tif');

b=strel('square',2);

c=imclose(a,b);

转自:

下列表格中除了个别函数外,其余函数都是图像处理工具箱提供的关于图像处理的函数,现摘录到此以备查找。

表1图像显示函数名

功能说明

函数名

功能说明

colorbar

颜色条显示

montage

按矩形剪辑方式显示多帧图像

getimage

从坐标系中获取图像数据

immovie

从多帧索引图像中制作电影

image

建立显示图像

movie

播放电影

subimage

在同一图像窗口显示多个图像

trueszie

调整图像显示大小

imagesc

调整数据并显示图像

warp

显示图像为纹理映射表面

imshow

图像显示

zoom

二维图形放大或缩小

表2图像文件输入/输出函数名

功能说明

函数名

功能说明

imread

图像文件读入

load

将以mat为扩展名的图像文件调入到内存

imwrite

图像写出

save

将内存变量中图像保存到mat文件中

dicomread

读取DICOM图像

dicomwrite

输出DICOM图像

iminfo

查看图形信息

表3图像像素值及其统计函数名

功能说明

函数名

功能说明

impixel

返回选定图像像素颜色值

imcontour

画图像数据轮廓(等高线,等值线)

improfile

图像中沿一个路径的数据值计算

imhist

求图像数据直方图

mean2

求均值

corr2

求相关系数

std2

求标准差

表4图像分析函数名

功能说明

函数名

功能说明

edge

灰度图像边缘检测

qtgetblk

获得四叉树分解块值

qtecomp

执行四叉树分解

qtsetblk

设置四叉树分解块值

表5图像增强及平滑函数名

功能说明

函数名

功能说明

imadjust

对比度调整

medfilt2

二维中值滤波器

histeq

直方图均衡

ordfilt2

顺序统计滤波器

imnoise

给图像增加噪声

wiener2

二维自适应除噪滤波器

表6图像线性滤波及二维线性滤波器设计函数名

功能说明

函数名

功能说明

conv2

二维卷积

freqz2

计算二维频率响应

convmtx2

计算二维卷积矩阵

fsamp2

用频率抽样设计二维FIR滤波器

convn

多维卷积

ftrans

用频率抽样转换二维FIRlbq

filter2

二维线性数字滤波器

fwind1

用一维窗口方法设计二维FIR滤波器

fspecial

产生预定义滤波器

fwind2

用二维窗口方法设计二维FIR滤波器

frespace

确定二维频率响应间隔

表7图像变换函数名

功能说明

函数名

功能说明

fft

计算一维快速Fourier变换

dct

计算离散余弦变换

ifft

计算一维FFT的逆变换

idct

计算离散反余弦变换

fft2

计算二维FFT

dct2

计算2D离散余弦变换

ifft2

计算二维逆FFT

idct2

计算2D反离散余弦变换

fftn

计算多维FFT

dctmtx

计算TCT矩阵

ifftn

计算多维逆FFT

radon

计算Radon变换

fftshift

直流分量移到频谱中心

表8图像领域及操作函数名

功能说明

函数名

功能说明

bestblk

选择块处理的块大小

colfilt

使用列方向函数进行领域运算

blkproc

对图像实行不同的块处理

im2col

重排图像块为矩阵列

col2im

重排矩阵列成图像块

nlfilter

进行一般领域计算

表9二值图像操作函数名

功能说明

函数名

功能说明

applylut

使用查找表进行领域操作

bwperim

确定二值图像中的目标边界

bwarea

计算二值图像中的目标区域

bwselect

选择二值图像中的目标

bweuler

计算二值图像中的欧拉数

dilate

对二值图像进行膨胀计算

bwfill

二值图像背景区域填充

erode

对二值图像进行寝蚀运算

bwlabel

标识二值图像中的连接成分

makelut

构造查找表(applylut)使用

bwmorph

二值图像形态运算

表10基于区域的图像处理函数名

功能说明

函数名

功能说明

roicolor

根据颜色选择要处理的区域

roifilt2

对要处理区域滤波

roifill

在任意区域内平滑差值

roipoly

选择要处理的多边形区域

表11图像几何运算函数名

功能说明

函数名

功能说明

imcrop

图像剪裁

imrotate

图像旋转

imresize

图像大小调整

interp2

二维数据差值

表12图像颜色图操作函数名

功能说明

函数名

功能说明

brighten

颜色图像变亮或变暗

colormap

设置获取图

cmpermute

重新排列颜色图中的颜色

imapprox

由颜色较少的图像近似索引图像

cmunique

寻找唯一的颜色图及相应的图像

rgbplot

绘制RGB颜色图

表13颜色控件转换函数名

功能说明

函数名

功能说明

hsv2rgb

将HSV颜色转化为RGB颜色值

mtsc2rgb

将NTSC值转换为RGB颜色空间值

rgb2hsv

将RGB颜色值转换为HSV颜色值

rgb2ntsc

将RGB值转换为NTSC颜色空间值

转自:

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2