matlab图像处理函数总汇文档格式.docx
《matlab图像处理函数总汇文档格式.docx》由会员分享,可在线阅读,更多相关《matlab图像处理函数总汇文档格式.docx(27页珍藏版)》请在冰点文库上搜索。
![matlab图像处理函数总汇文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/621f3ea5-3d85-41d9-8b6f-09b64fd054ea/621f3ea5-3d85-41d9-8b6f-09b64fd054ea1.gif)
18
18邻域
26
26邻域
BW1=imread('
circbw.tif'
BW2=bwperim(BW1,8);
imshow(BW1)
figure,imshow(BW2)
图像处理函数详解——colfilt
以列方法进行邻域处理,也可执行常规非线性滤波(自己理解的)。
B=colfilt(A,[mn],block_type,fun)
该函数生成了一幅图像A,在A中,每一列对应于其中心位于图像内某个位置的邻域所包围的像素。
然后将函数应用于该矩阵中。
[mn]表示大小为m行n列的邻域。
block_type表示了一个字符串,包括'
distinct'
'
sliding'
两种,其中'
是在输入图像中逐个像素地滑动该m乘n的区域。
fun表示引用了一个函数进行处理,函数返回值的大小必须和原图像大小相同。
举例:
I=imread('
tire.tif'
imshow(I)
I2=uint8(colfilt(I,[55],'
@mean));
figure,imshow(I2)
图像处理函数详解——dither
可以把真彩色图像装换成索引图像或者把灰度图像转换为二值图像。
X=dither(RGB,map)
BW=dither(I)
X=dither(RGB,map,Qm,Qe)
X=dither(RGB,map)表示把真彩色图像RGB按指定的色图map抖动成索引图像X,但map不能超过65536种颜色。
BW=dither(I)
表示把灰度图像I抖动成二值图像BW
X=dither(RGB,map,Qm,Qe)Qm表示沿每个颜色轴反转颜色图的量化的位数,Qe表示颜色空间计算误差的量化位数。
如果Qe<Qm,则不进行抖动操作。
默认值Qe=5,Qm=8
cameraman.tif'
BW=dither(I);
imview(BW)
图像处理函数详解——conv2
是二维卷积运算函数(与convmtx2相似)。
如果a和b是两个离散变量n1和n2的函数,则关于a和b的二维卷积运算数学公式如下:
C=conv2(A,B)
C=conv2(hcol,hrow,A)
C=conv2(...,'
shape'
)
C=conv2(A,B)计算数组A和B的卷积。
如果一个数组描述了一个二维FIR滤波器,则另一个数组被二维滤波。
当A的大小为[ma,na],B的大小为[mb,nb]时,C的大小为[ma+mb-1,mb+nb-1]。
‘shape’见下表
含义
‘full’
默认值,返回全部二维卷积值。
‘same’
返回与A大小相同卷积值的中间部分
‘valid’
当all(size(A)>
=size(B)),C的大小为[ma+mb-1,mb+nb-1];
否则,C返回[]。
在n维卷积运算中,C的大小为max(size(A)-size(B)+1,0)
s=[121;
000;
-1-2-1];
A=zeros(10);
A(3:
7,3:
7)=ones(5);
H=conv2(A,s);
mesh(H)
图像处理函数详解——histeq
直方图均衡化。
J=histeq(I,hgram)
将原始图像I的直方图变成用户指定的向量hgram。
hgram中的各元素的值域为[0,1]。
J=histeq(I,n)
指定直方图均衡后的灰度级数n,默认值为64。
[J,T]=histeq(I,...)
返回从能将图像I的灰度直方图变换成图像J的直方图变换T。
newmap=histeq(X,map,hgram)
newmap=histeq(X,map)
[newmap,T]=histeq(X,...)
这三个是针对索引图像调色板的直方图均衡化,用法和灰度图像的一样。
I=imread('
J=histeq(I);
imshow(I)
figure,imshow(J)
图像处理函数详解——im2bw
通过设定亮度将阈值灰度、真彩、索引图像转换为二值图像。
BW=im2bw(I,level)
BW=im2bw(X,map,level)
BW=im2bw(RGB,level)
分别将灰度图像、索引图像、真彩色图像转换为二值图像。
Level是归一化的阈值,值域为[0,1]。
Level可以由函数graythresh(I)来计算。
loadtrees
BW=im2bw(X,map,0.4);
imview(X,map),imview(BW)
图像处理函数详解——im2uint8
将图像转换为8位无符号整型。
也可将输出值限定在[0255]内。
I2=im2uint8(I)
RGB2=im2uint8(RGB)
I=im2uint8(BW)
X2=im2uint8(X,'
indexed'
I=reshape(uint8(linspace(0,255,255)),[55])
图像处理函数详解——imadd
实现图像相加运算。
Z=imadd(X,Y)
rice.png'
J=imread('
K=imadd(I,J,'
uint16'
%转换数据类型,然后将图像相加
imshow(K,[])
图像处理函数详解——imadjust
调节灰度图像的亮度或彩色图像的颜色矩阵。
J=imadjust(I,[low_in;
high_in],[low_out;
high_out],gamma)
将图像I中的亮度值映射到J中的新值,即将low_in至hige_in之间的值映射到low_out至high_out之间的值。
low_in以下与high_in以上的值被剪切掉了,也就是说,low_in以下的值映射到low_out,high_in以上的值映射到high_out。
它们都可以使用空的矩阵[],默认值是[01]。
newmap=imadjust(map,[low_inhigh_in],[low_outhigh_out],gamma)
调整索引色图像的调色板map。
RGB2=imadjust(RGB1,[low_inhigh_in],[low_outhigh_out],gamma)
对RGB图像1的红、绿、蓝调色板分别进行调整。
随着颜色矩阵的调整,每一个调色板都有唯一的映射值。
参数gamma指定了曲线的形状,该曲线用来映射I的亮度值。
如果gamma小于1,映射被加权到更高的输出值。
如果gamma大于1,映射被加权到更低的输出值。
如果省略了函数的参量,则gamma默认为1(线性映射)。
调整灰度图像:
K=imadjust(I,[0.30.7],[]);
figure,imshow(K)
调整RGB图像:
RGB1=imread('
football.jpg'
RGB2=imadjust(RGB1,[.2.30;
.6.71],[]);
imshow(RGB1),figure,imshow(RGB2)
图像处理函数详解——imapprox
减少索引图像的色彩数,能够指定新色图的色彩数。
即对索引图像进行近似处理。
[Y,newmap]=imapprox(X,map,n)
[Y,newmap]=imapprox(X,map,tol)
Y=imapprox(X,map,newmap)
[...]=imapprox(...,dither_option)
[Y,newmap]=imapprox(X,map,n)表示把索引图像和色图map进行最小值量化逼近。
函数返回索引图像和新的色图newmap,色图至多有n种色彩。
[Y,newmap]=imapprox(X,map,tol)表示把索引图像和色图map进行均衡量化逼近。
新色图newmap至多有(floor(1/tol)+1)^3种色彩,tol的范围必须为[0,1.0]。
[X,map]=imread('
trees.tif'
[Y,newmap]=imapprox(X,map,16);
imview(Y,newmap)
图像处理函数详解——imcomplement
对图像进行求反运算。
IM2=imcomplement(IM)
计算图像IM的负片。
图像IM可以是二值图像、灰度图像、或者RGB图像。
IM2和IM类型相同。
X=uint8([2551075;
44225100]);
X2=imcomplement(X)
X2=
0
245
180
211
30
155
bw=imread('
bw2=imcomplement(bw);
subplot(1,2,1),imshow(bw)
subplot(1,2,2),imshow(bw2)
glass.png'
J=imcomplement(I);
imshow(I),figure,imshow(J)
图像处理函数详解——imfinfo
获取图像文件的信息
info=imfinfo(filename,fmt)
info=imfinfo(filename)
参数fmt对应于图像处理工具箱中所有支持的图像文件格式(如'
bmp'
jpg'
等等)
info=imfinfo('
canoe.tif'
info=
Filename:
'
FileModDate:
'
25-Oct-199622:
10:
39'
FileSize:
69708
Format:
tif'
FormatVersion:
[]
Width:
346
Height:
207
BitDepth:
8
ColorType:
FormatSignature:
[7373420]
ByteOrder:
little-endian'
NewSubfileType:
0
BitsPerSample:
Compression:
PackBits'
PhotometricInterpretation:
RGBPalette'
StripOffsets:
[9x1
double]
SamplesPerPixel:
1
RowsPerStrip:
23
StripByteCounts:
XResolution:
72
YResolution:
ResolutionUnit:
Inch'
Colormap:
[256x3
PlanarConfiguration:
Chunky'
TileWidth:
TileLength:
TileOffsets:
TileByteCounts:
Orientation:
FillOrder:
GrayResponseUnit:
0.0100
MaxSampleValue:
255
MinSampleValue:
Thresholding:
图像处理函数详解——imhist
显示图像的直方图。
输入数据类型可以是无符号8位、16位、有符号16位、单精浮点、字符型、逻辑型等数据。
imhist(I,n)
计算和显示图像I的直方图,n为指定的灰度级数目,默认为256。
如果I是二值图像,那么n仅有两个值。
imhist(X,map)
计算和显示索引图像x的直方图,map为调色板。
[counts,x]=imhist(...)
返回直方图数据向量counts或相应的色彩值向量x。
I=imread('
rice.tif'
figure,imhist(I)
图像处理函数详解——imnoise
模仿噪声信息,相当于图像的相加运算。
J=imnoise(I,type)
J=imnoise(I,type,parameters)
参数Type对应的噪声类型如下:
gaussian'
高斯白噪声
localvar'
0均值白噪声
poisson'
泊松噪声
salt&
pepper'
盐椒噪声
speckle'
乘性噪声
eight.tif'
J=imnoise(I,'
0.02);
%密度0.02的盐椒噪声
figure,imshow(J)
图像处理函数详解——imresize
改变图像的大小。
B=imresize(A,m)
B=imresize(A,m,method)
B=imresize(A,[mrowsncols],method)
B=imresize(...,method,n)
B=imresize(...,method,h)
imrersize函数使用由参数method指定的插值运算来改变图像的大小。
method的几种可选值:
nearest'
(默认值)最近邻插值
bilinear'
双线性插值
bicubic'
双三次插值
B=imresize(A,m)表示把图像A放大m倍
B=imresize(...,method,h)中的h可以是任意一个FIR滤波器(h通常由函数ftrans2、fwind1、fwind2、或fsamp2等生成的二维FIR滤波器)。
circuit.tif'
J=imresize(I,1.25);
%使用默认的最近邻插值法放大图像1.25倍
图像处理函数详解——imdilate
对图像实现膨胀操作。
IM2=imdilate(IM,SE)
IM2=imdilate(IM,NHOOD)
IM2=imdilate(IM,SE,PACKOPT)
IM2=imdilate(...,PADOPT)
IM2=imdilate(IM,SE)膨胀灰度,二值,压缩二值图像IM,返回IM2。
参数SE为由strel函数返回的结构元素或者结构元素对象组。
IM2=imdilate(IM,NHOOD)膨胀图像IM,这里NHOOD是定义结构元素邻域0和1的矩阵。
IM2=imdilate(IM,SE,PACKOPT)定义IM是否是一个压缩的二值图像。
IM2=imdilate(...,PADOPT)指出输出图像的大小。
se=strel('
ball'
5,5);
I2=imdilate(I,se);
imshow(I),title('
Original'
figure,imshow(I2),title('
Dilated'
图像处理函数详解——imerode
对图像实现腐蚀操作,即膨胀操作的反操作。
IM2=imerode(IM,SE)
IM2=imerode(IM,NHOOD)
IM2=imerode(IM,SE,PACKOPT,M)
IM2=imerode(...,PADOPT)
IM2=imerode(IM,SE)腐蚀灰度,二值,压缩二值图像IM,返回IM2。
IM2=imerode(IM,NHOOD)腐蚀图像IM,这里NHOOD是定义结构元素邻域0和1的矩阵。
IM2=imerode(...,PADOPT)指出输出图像的大小(是否与输入图像大小一致)。
circles.png'
disk'
11);
erodedBW=imerode(originalBW,se);
imview(originalBW),imview(erodedBW)
图像处理函数详解——imopen
对图像实现开运算,开运算一般能平滑图像的轮廓,消弱狭窄的部分,去掉细的突出。
IM2=imopen(IM,SE)
IM2=imopen(IM,NHOOD)
IM2=imopen(IM,SE)用结构元素SE实现灰度图像或二值图像的IM的形态开运算。
SE可以是单个结构元素对象或者结构元素对象数组。
IM2=imopen(IM,NHOOD)用结构元素strel(NHOOD)执行开运算。
snowflakes.png'
5);
I_opened=imopen(I,se);
imview(I_opened,[])
图像处理函数详解——imclose
对图像实现闭运算,闭运算也能平滑图像的轮廓,但与开运算相反,它一般融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙。
IM2=imclose(IM,SE)
IM2=imclose(IM,NHOOD)
用法和imopen相同,请在本论坛查找!
10);
closeBW=imclose(originalBW,se);
imview(closeBW)
图像处理函数详解——mat2gray
将矩阵转化为灰度图像。
I=mat2gray(A,[aminamax])
把一个double类的任意数组转换成取值范围为[01]的亮度图像。
其中图像I的取值范围也在0(黑色)到1(白色)之间。
参数amin和amax表示将A中小于amin的值转换为0,将A中大于amax的值转换为1。
I=mat2gray(A)
将矩阵A中实际最小值和最大值分别赋给amin和amax。
J=filter2(fspecial('
sobel'
),I);
K=mat2gray(J);
imshow(I),figure,imshow(K)
图像处理函数详解——montage
在同一时间显示多帧