本文共 12064 字,大约阅读时间需要 40 分钟。
图像处理工具箱功能说明
以下是图像处理工具箱中常用功能的详细说明,涵盖了从基础操作到高级分析的多种功能。
一、通用函数
1. colorbar 显示彩色条
colorbar 可以用来显示彩色条,方便直观地查看图像的颜色分布。
- 语法:colorbar('vert') 或 colorbar('horiz'),也可以传入自定义高度或宽度的参数。
- 支持的显示方式有垂直和水平两种。
2. getimage 从坐标轴取得图像数据
getimage 用于从图像中获取特定坐标的像素值。
- 语法:A=getimage(h) 或 [x,y,A]=getimage(h),还可以指定是否返回像素值以及是否启用镜像反射。
- 支持多种输出格式和参数,适用于精确的像素操作。
3. imshow 显示图像
imshow 是一个强大的图像显示函数,支持多种图像类型和显示选项。
- 语法:imshow(I,n) 可以显示图像的特定区域,imshow(I,[low high]) 用于调整图像亮度范围。
- 支持显示灰度图、真彩图以及多通道图像,支持添加水印和显示坐标轴。
4. montage 在矩形框中同时显示多幅图像
montage 函数可以将多个图像拼接在一起显示。
- 语法:montage(I) 或 montage(BW) 等,支持显示多种图像类型和拼接方式。
- 常用于快速比较多幅图像的内容。
5. immovie 创建多帧索引图的电影动画
immovie 用于将多帧图像转换为视频。
- 语法:mov=immovie(X,map) 或 mov=immovie(RGB),支持多种图像格式和自定义播放参数。
6. subimage 在一副图中显示多个图像
subimage 函数可以在单一图像中嵌入多个子图像。
- 语法:subimage(X,map) 或 subimage(I),支持不同位置和大小的嵌入。
7. truesize 调整图像显示尺寸
truesize 用于调整图像的显示尺寸,使其更适合屏幕显示。
- 语法:truesize(fig) 或 truesize(fig,[mrows mcols]),支持自动计算最佳比例。
8. warp 将图像显示到纹理映射表面
warp 函数用于将图像映射到三维表面。
- 语法:warp(X,map) 或 warp(I, n),支持多种纹理参数和变形方式。
9. zoom 缩放图像
zoom 函数提供了图像缩放的多种方式,包括整体缩放和部分缩放。
- 语法:zoom on 或 zoom off,用于切换是否显示缩放工具;zoom out 用于快速缩小图像。
二、图像文件I/O函数命令
1. imfinfo 返回图形图像文件信息
imfinfo 用于获取图像文件的详细信息,包括尺寸、深度和格式等。
- 语法:info=imfinfo(filename,fmt) 或 info=imfinfo(filename)。
2. imread 从图像文件中读取图像
imread 是读取图像文件的核心函数,支持多种格式。
- 语法:A=imread(filename,fmt) 或 [X,map]=imread(filename,fmt),还支持从URL或内存读取。
3. imwrite 将图像写入图像文件
imwrite 用于将图像保存为指定格式,支持多种文件类型。
- 语法:imwrite(A,filename,fmt) 或 imwrite(...,Param1,Val1,Param2,Val2...)。
4. imcrop 剪切图像
imcrop 用于对图像进行剪切操作,支持矩形剪切和自由剪切。
- 语法:I2=imcrop(I) 或 I2=imcrop(I,rect),支持返回剪切后的坐标信息。
5. imresize 改变图像大小
imresize 用于改变图像的分辨率,支持多种缩放方式。
- 语法:B=imresize(A,m,method),method 可选的有 'bicubic'、'nearest' 等。
6. imrotate 旋转图像
imrotate 用于旋转图像,支持指定旋转角度和填充方式。
- 语法:B=imrotate(A,angle,method),method 可选的有 'fill'、'crop' 等。
三、像素和统计处理函数
1. corr2 计算两个矩形的二维相关系数
corr2 用于计算两个图像的二维相关系数,常用于图像相似度分析。
2. imcontour 创建图像数据的轮廓图
imcontour 用于绘制图像数据的轮廓线。
- 语法:imcontour(I,n) 或 imcontour(I,v),支持多种轮廓绘制方式。
3. imfeature 计算图像区域的特征尺寸
imfeature 用于计算图像区域的特征尺寸,常用于尺度空间分析。
- 语法:stats=imfeature(L,measurements)。
4. imbist 显示图像数据的柱状图
imbist 用于将图像数据转换为柱状图,便于直观分析。
- 语法:P=impixel(I) 或 P=impixel(X,map)。
5. impixel 确定像素颜色值
impixel 用于获取图像中指定位置的像素颜色值。
- 语法:P=impixel(I) 或 P=impixel(X,map)。
6. improfile 沿线段计算剖面图的像素值
improfile 用于计算沿着图像边缘的像素值分布。
- 语法:c=improfile(I,xi,yi) 或 [cx,cy,c]=improfile(...)。
7. mean2 计算矩阵元素的平均值
mean2 用于计算图像矩阵元素的平均值。
8. pixval 显示图像像素信息
pixval 用于显示图像像素的详细信息。
9. std2 计算矩阵元素的标准偏移
std2 用于计算图像矩阵元素的标准偏移。
四、图像分析函数
1. edge 图像边缘检测
edge 用于检测图像的边缘,支持多种边缘检测算法。
- 语法:BW=edge(I,'sobel') 或 BW=edge(I,'prewitt')。
2. qtgetblk 获取四叉树分解的块值
qtgetblk 用于从四叉树分解中获取块值信息。
- 语法:[vals,r,c]=qtgetblk(I,S,dim)。
3. qtsetblk 设置四叉树分解中的块值
qtsetblk 用于在四叉树分解中设置块值。
- 语法:J=qtsetblk(I,S,dim,vals)。
4. histeq 用柱状图均等化增强对比
histeq 用于对图像进行柱状图均等化,增强对比度。
- 语法:J=histeq(I,hgram) 或 J=histeq(I,n)。
5. imadjust 调整图像灰度值或颜色映像表
imadjust 用于调整图像灰度值或颜色映像表。
- 语法:J=imadjust(I,[low_in ,high_in],gamma)。
6. imnoise 增强图像的渲染效果
imnoise 用于为图像增加噪声效果。
- 语法:J=imnoise(I,type) 或 J=imnoise(I,type,parameters)。
7. medfilt2 进行二维中值过滤
medfilt2 用于进行二维中值过滤,平滑图像。
- 语法:B=medfilt2(A,[m n]) 或 B=medfilt2(A)。
8. ordfilt2 进行二维统计顺序过滤
ordfilt2 用于进行二维统计顺序过滤,常用于去噪。
- 语法:B=ordfilt2(A,order,domain)。
9. wiener2 进行二维适应性去噪过滤
wiener2 用于进行二维适应性去噪过滤。
- 语法:J=wiener2(I,[m n],noise)。
五、线性滤波函数
1. conv2 进行二维卷积操作
conv2 用于进行二维卷积操作,支持多种卷积核。
- 语法:C=conv2(A,B) 或 C=conv2(hcol,hrow,A)。
2. convmtx2 计算二维卷积矩阵
convmtx2 用于计算二维卷积矩阵。
- 语法:T=convmtx2(H,m,n) 或 T=convmtx2(H,[m n])。
3. convn 计算n维卷积
convn 用于计算n维卷积操作。
- 语法:C=convn(A,B) 或 C=convn(A,B,'shape')。
4. filter2 进行二维线性过滤操作
filter2 用于进行二维线性过滤操作,支持多种滤镜。
- 语法:Y=filter2(h,X) 或 Y=filter2(h,X,shape)。
5. fspecial 创建预定义过滤器
fspecial 用于创建图像处理中的预定义滤镜。
- 语法:h=fspecial(type) 或 h=fspecial(type,parameters)。
六、线性二维滤波设计函数
1. freqspace 确定二维频率响应的频率空间
freqspace 用于确定二维频率响应的频率空间。
- 语法:[f1,f2]=freqspace(n) 或 [f1,f2]=freqspace([m n])。
2. freqz2 计算二维频率响应
freqz2 用于计算二维频率响应。
- 语法:[H,f1,f2]=freqz2(h,n1,n2) 或 [H,fi,f2]=freqz2(h,[n2,n1])。
3. fsamp2 用频率采样法设计二维FIR过滤器
fsamp2 用于设计二维FIR过滤器。
- 语法:h=fsamp2(Hd) 或 h=fsamp2(f1,f2,Hd,[m n])。
4. ftrans2 通过频率转换设计二维FIR过滤器
ftrans2 用于通过频率转换设计二维FIR过滤器。
- 语法:h=ftrans2(b,t) 或 h=ftrans2(b)。
5. fwind1 用一维窗口方法设计二维FIR过滤器
fwind1 用于设计二维FIR过滤器。
- 语法:h=fwind1(Hd,win) 或 h=fwind1(Hd,win1,win2)。
6. fwind2 用二维窗口方法设计二维FIR过滤器
fwind2 用于设计二维FIR过滤器。
- 语法:h=fwind2(Hd,win) 或 h=fwind2(f1,f2,Hd,win)。
七、图像变换函数
1. dct2 进行二维离散余弦变换
dct2 用于进行二维离散余弦变换。
- 语法:B=dct2(A) 或 B=dct2(A,m,n)。
2. dctmtx 计算离散余弦傅立叶变换
dctmtx 用于计算离散余弦傅立叶变换矩阵。
3. fft2 进行二维快速傅立叶变换
fft2 用于进行二维快速傅立叶变换。
- 语法:Y=fft2(X) 或 Y=fft2(X,m,n)。
4. ffn 进行n维快速傅立叶变换
ffn 用于进行n维快速傅立叶变换。
- 语法:Y=ffn(X) 或 Y=fftn(X,siz)。
5. fftshift 快速傅立叶变换的DC组件移到光谱中心
fftshift 用于将DC组件移到光谱中心。
- 语法:Y=fftshift(X) 或 Y=fftshift(X,dim)。
6. iradon 进行反radon变换
iradon 用于进行反radon变换。
- 语法:I=iradon(P,theta) 或 I=iradon(P,theta,interp,filter,d,n)。
7. phantom 产生一个头部幻影图像
phantom 用于生成一个带有头部幻影的图像。
- 语法:P=phantom(def,n) 或 P=phantom(E,n)。
8. radon 计算radon变换
radon 用于计算radon变换。
- 语法:R=radon(I,theta) 或 [R,xp]=radon(...)。
八、图像变换函数
1. bestblk 确定进行块操作的块大小
bestblk 用于确定块大小。
- 语法:siz=bestblk([m n],k) 或 [mb,nb]=bestblk([m n],k)。
2. blkproc 实现图像的显示块操作
blkproc 用于实现图像的显示块操作。
- 语法:B=blkproc(A,[m n]),fun) 或 B=blkproc(A,[m n],fun,P1,P2,...)。
3. col2im 将矩阵的列重新组织到块中
col2im 用于将矩阵的列重新组织到块中。
- 语法:A=col2im(B,[m n],[mm nn],block_type) 或 A=col2im(B,[m n],[mm nn])。
4. colfilt 利用列相关函数进行边沿操作
colfilt 用于利用列相关函数进行边沿操作。
- 语法:B=colfilt(A,[m n],block_type,fun) 或 B=colfilt(A,[m n],block_type,fun,P1,P2,...)。
5. im2col 重调图像块为列
im2col 用于将图像块转换为列向量。
- 语法:B=im2col(A,[m n],block_type) 或 B=im2col(A,[m n])。
6. nlfilter 进行边沿操作
nlfilter 用于进行边沿操作,支持多种函数。
- 语法:B=nlfilter(A,[m n],fun) 或 B=nlfilter(A,[m n],fun,P1,P2,...)。
九、二进制图像操作函数
1. applylut 在二进制图像中利用lookup表进行行边沿操作
applylut 用于在二进制图像中利用lookup表进行行边沿操作。
2. bwarea 计算二进制图像对象的面积
bwarea 用于计算二进制图像对象的面积。
3. bweuler 计算二进制图像的欧拉数
bweuler 用于计算二进制图像的欧拉数。
4. bwfill 填充二进制图像的背景色
bwfill 用于填充二进制图像的背景色。
- 语法:BW2=bwfill(BW1,c,r,n) 或 BW2=bwfill(BW1,n)。
5. bwlabel 标注二进制图像中已连接的部分
bwlabel 用于标注二进制图像中已连接的部分。
- 语法:L=bwlabel(BW,n) 或 [L,num]=bwlabel(BW,n)。
6. bwmorph 提取二进制图像的轮廓
bwmorph 用于提取二进制图像的轮廓。
- 语法:BW2=bwmorph(BW1,operation) 或 BW2=bwmorph(BW1,operation,n)。
7. bwperim 计算二进制图像中对象的周长
bwperim 用于计算二进制图像中对象的周长。
- 语法:BW2=bwperim(BW1) 或 BW2=bwperim(BW1,CONN)。
8. bwselect 在二进制图像中选择对象
bwselect 用于在二进制图像中选择对象。
- 语法:BW2=bwselect(BW1,c,r,n) 或 BW2=bwselect(BW1,n)。
9. dilate 放大二进制图像
dilate 用于对二进制图像进行膨胀操作。
- 语法:BW2=dilate(BW1,SE) 或 BW2=dilate(BW1,SE,alg)。
10. erode 弱化二进制图像的边界
erode 用于对二进制图像进行腐蚀操作。
- 语法:BW2=erode(BW1,SE) 或 BW2=erode(BW1,SE,alg)。
11. makelut 创建一个用于applylut函数的lookup表
makelut 用于创建lookup表。
- 语法:lut=makelut(fun,n) 或 lut=makelut(fun,n,P1,P2,...)。
十、二进制图像操作函数
1. roicolor 选择感兴趣的颜色区
roicolor 用于选择感兴趣的颜色区。
- 语法:BW=roicolor(A,low,high) 或 BW=rocicolor(A,v)。
2. roifill 在图像的任意区域中进行平滑插补
roifill 用于在图像的任意区域中进行平滑插补。
- 语法:J=roifill(I,c,r) 或 J=roifill(I) 或 J=roifill(I,BW)。
3. roifilt2 过滤敏感区域
roifilt2 用于对敏感区域进行过滤。
- 语法:J=roifilt2(h,I,BW) 或 J=roifilt2(I,BW,fun)。
4. roipoly 选择一个敏感的多边形区域
roipoly 用于选择一个敏感的多边形区域。
- 语法:BW=roipoly(I,c,r) 或 BW=roipoly(I) 或 BW=roipoly(x,y,I,xi,yi)。
十一、颜色映像处理函数
1. brighten 增加或降低颜色映像表的亮度
brighten 用于调整颜色映像表的亮度。
- 语法:brighten(beta) 或 brighten(h,beta) 或 newmap=brighten(beta)。
2. cmpermute 调整颜色映像表中的颜色
cmpermute 用于调整颜色映像表中的颜色。
- 语法:[Y,newmap]=cmpermute(X,map) 或 [Y,newmap]=cmpermute(X,map,index)。
3. cmunigue 查找颜色映像表中特定的颜色及相应的图像
cmunigue 用于查找颜色映像表中特定的颜色及相应的图像。
- 语法:[Y,newmap]=cmunigue(X,map) 或 [Y,newmap]=cmunigue(RGB) 或 [Y,newmap]=cmunique(I)。
4. imapprox 对索引图像进行近似处理
imapprox 用于对索引图像进行近似处理。
- 语法:[Y,newmap]=imapprox(X,map,n) 或 [Y,newmap]=imapprox(X,map,tol) 或 Y=imapprox(X,map,newmap)。
5. rgbplot 划分颜色映像表
rgbplot 用于显示颜色映像表。
十二、颜色空间转换函数
1. hsv2rgb 转换HSV值为RGB颜色空间
hsv2rgb 用于将HSV值转换为RGB颜色空间。
2. ntsc2rgb 转换NTSC值为RGB颜色空间
ntsc2rgb 用于将NTSC值转换为RGB颜色空间。
- 语法:rgbmap=ntsc2rgb(yiqmap) 或 RGB=ntsc2rgb(YIQ)。
3. rgb2hsv 转换RGB值为HSV颜色空间
rgb2hsv 用于将RGB值转换为HSV颜色空间。
4. rgb2ntsc 转换RGB值为NTSC颜色空间
rgb2ntsc 用于将RGB值转换为NTSC颜色空间。
- 语法:yiqmap=rgb2ntsc(rgbmap) 或 YIQ=rgb2ntsc(RGB)。
5. rgb2ycbcr 转换RGB值为YCbCr颜色空间
rgb2ycbcr 用于将RGB值转换为YCbCr颜色空间。
- 语法:ycbcrmap=rgb2ycbcr(rgbmap) 或 YCBCR=rgb2ycbcr(RGB)。
6. ycbcr2rgb 转化YCbCr值为RGB颜色空间
ycbcr2rgb 用于将YCbCr值转化为RGB颜色空间。
- 语法:rgbmap=ycbcr2rgb(ycbcrmap) 或 RGB=ycbcr2rgb(YCBCR)。
十三、图像类型和类型转换函数
1. dither 通过抖动增加外观颜色分辨率转换图像
dither 用于通过抖动增加外观颜色分辨率。
- 语法:X=dither(RGB,map) 或 BW=dither(I)。
2. gray2ind 转换灰度图像为索引图像
gray2ind 用于将灰度图像转换为索引图像。
- 语法:[X,map]=gray2ind(I,n) 或 [X,map]=gray2ind(BW,n)。
3. grayslice 从灰度图像为索引图像
grayslice 用于从灰度图像中获取特定灰度值对应的索引值。
- 语法:X=grayslice(I,n) 或 X=grayslice(I,v)。
4. im2bw 转换图像为二进制图像
im2bw 用于将图像转换为二进制图像。
- 语法:BW=im2bw(I,level) 或 BW=im2bw(X,map,level) 或 BW=im2bw(RGB,level)。
5. im2double 转换图像矩阵为双精度型
im2double 用于将图像矩阵转换为双精度型。
- 语法:I2=im2double(I1) 或 RGB2=im2double(RGB1) 或 I=im2double(BW) 或 X2=im2double(X1,'indexed')。
6. double 转换数据为双精度型
double 用于将数据转换为双精度型。
7. unit8 、unit16 转换数据为8位、16位无符号整型
unit8 用于将数据转换为8位无符号整型。
- 语法:i=unit8(x) 或 i=unit16(x)。
8. im2unit8 转换图像阵列为8位无符号整型
im2unit8 用于将图像阵列转换为8位无符号整型。
- 语法:I2=im2unit8(I1) 或 RGB2=im2unit8(RGB1) 或 I=im2unit8(BW) 或 X2=im2unit8(X1,'indexed')。
9. im2unit16 转换图像阵列为16位无符号整型
im2unit16 用于将图像阵列转换为16位无符号整型。
- 语法:I2=im2unit16(I1) 或 RGB2=im2unit16(RGB1) 或 I=im2unit16(BW) 或 X2=im2unit16(X1,'indexed')。
10. ind2gray 把检索图像转化为灰度图像
ind2gray 用于将检索图像转换为灰度图像。
11. ind2rgb 转化索引图像为RGB真彩图像
ind2rgb 用于将索引图像转换为RGB真彩图像。
12. isbw 判断是否为二进制图像
isbw 用于判断是否为二进制图像。
13. isgray 判断是否为灰度图像
isgray 用于判断是否为灰度图像。
14. isind 判断是否为索引图像
isind 用于判断是否为索引图像。
15. isrgb 判断是否为RGB真彩色图像
isrgb 用于判断是否为RGB真彩色图像。
16. mat2gray 转换矩阵为灰度图像
mat2gray 用于将矩阵转换为灰度图像。
- 语法:I=mat2gray(A,[amin amax]) 或 I=mat2gray(A)。
17. rgb2gray 转换RGB图像或颜色映像表为灰度图像
rgb2gray 用于将RGB图像或颜色映像表转换为灰度图像。
- 语法:I=rgb2gray(RGB) 或 newmap=rgb2gray(map)。
18. rgb2ind 转换RGB图像为索引图像
rgb2ind 用于将RGB图像转换为索引图像。
- 语法:[X,map]=rgb2ind(RGB,tol) 或 [X,map]=rgb2ind(RGB,n) 或 X=rgb2ind(RGB,map) 或 [...]=rgb2ind(...,dither_option)。
十四、新增图像处理工具箱函数
1. adapthisteq 限制对比度直方图均衡化
adapthisteq 用于限制对比度直方图均衡化。
- 语法:J=adapthisteq(I) 或 J=adapthisteq(I,param1,val1,param2,val2...)。
applycform 用于应用颜色空间变换。
3. bwboundaries 描绘二进制图像边界
bwboundaries 用于描绘二进制图像边界。
- 语法:B=bwboundaries(BW) 或 B=bwboundaries(BW,CONN) 或 B=bwboundaries(BW,CONN,options) [BW,CONN,options] [BL]=bwboundaries(...) [BLNA]=bwboundaries()。
4. bwtraceboundary 描述二进制图像中的物体
bwtraceboundary 用于描述二进制图像中的物体。
- 语法:B=bwtraceboundary(BW,P,fstep) 或 B=bwtraceboundary(BW,P,fstep,CONN) 或 B=bwtraceboundary(...N,dir)。
5. decorrstrech 对多通道图像进行去相关处理
decorrstrech 用于对多通道图像进行去相关处理。
- 语法:S=decorrstretch(I) 或 S=decorrstretch(I,TOL)。
6. dicomdict 获取或读取DICOM文件
dicomdict 用于获取或读取DICOM文件。
- 语法:dicomdict('set',dictionary) 或 dictionary=dicomdict('get')。
7. getline 用鼠标选择ployline
getline 用于通过鼠标选择polyline。
- 语法:[x,y]=getline(fig) 或 [x,y]=getline(ax) 或 [x,y]=getline 或 [x,y]=getline(...,'closed')。
8. getpts 用鼠标选择像素点
getpts 用于通过鼠标选择像素点。
- 语法:[x,y]=getpts(fig) 或 [x,y]=getpts(ax) 或 [x,y]=getpts。
9. getrect 用鼠标选择矩阵
getrect 用于通过鼠标选择矩阵。
- 语法:rect=getrect(fig) 或 rect=getrect(ax) 或 rect=getrect(fig)。
10. iccread 读取ICC剖面
iccread 用于读取ICC剖面。
11. im2java2d 将图像转换为Java缓冲图像
im2java2d 用于将图像转换为Java缓冲图像。
- 语法:jimage=im2java2d(I) 或 jimage=im2java2d(X,MAP)。
12. imview 在图像与蓝旗中显示图像
imview 用于在图像与蓝旗中显示图像。
- 语法:imview(I) 或 imview(RGB) 或 imview(X,map) 或 imview(I,range) 或 imview(filename) 或 imview(...'InitialMagnification',initial_mag) 或 h=imview(...) 或 imview close all。
13. ippl 检查IPPL的存在
ippl 用于检查IPPL的存在。
- 语法:TF=ippl 或 [TF B]=ippl。
14. iptdemos 显示图像处理工具箱中的索引图像
iptdemos 用于显示图像处理工具箱中的索引图像。
15. lab2double、lab2unit16、lab2unit8 将Lab数据分别转换为双精度、16位数据、8位数据
lab2double 用于将Lab数据转换为双精度。
- 语法:lab2double、lab2unit16、lab2unit8。
makecform 用于创建色彩转换结构。
17. poly2mask 把多边形区域转换成mask区域
poly2mask 用于将多边形区域转换成mask区域。
- 语法:BW=poly2mask(x,y,m,n)。
18. unitlut 查找表中A像素值
unitlut 用于查找表中A像素值。
19. xyz2double、xyz2unit16 将颜色数据从XYZ转换到双精度、16进制。
xyz2double 用于将颜色数据从XYZ转换到双精度。
- 语法:xyzd=xyz2double(XYZ) 或 xyz16=xyz2unit16(xyz)。
通过以上功能,可以完成从基础图像操作到高级图像分析的多种任务,满足各种图像处理需求。
转载地址:http://qkyfk.baihongyu.com/