matlab中图像函数大全(2008-04-21 15:24:26)
标签: 杂谈
matlab中图像函数大全2008-04-17 22:40matlab常用图像操作。
一。 读写图像文件。
1. imread
imread函数用于读入各种图像文件,如:a=imread('e:\'
注:计算机e盘上要有w01相应的。tif文件。
2. imwrite
imwrite函数用于写入图像文件,如:imwrite(a,'e:\'tif’)
3. imfinfo
imfinfo函数用于读取图像文件的有关信息,如:imfinfo('e:\'
二。 图像的显示。
1. image
image函数是matlab提供的最原始的图像显示函数(主要彩色显示图象),如:
a=[1,2,3,4;4,5,6,7;8,9,10,11,12];
image(a);
2. imshow
imshow函数用于灰度图像文件的显示,如:
i=imread('e:\'
imshow(i);
3. colorbar
colorbar函数用显示图像的颜色条。
通常,颜色映象进行过调节,把数据从最小扩展到最大,也就是说整个颜色映象都用于绘图。有时也许想改变颜色使用的方法。函数caxis代表颜色轴,因为颜色增加了另一个维数,它允许对数据范围的一个子集使用整个颜色映象或者对数据的整个集合只使用当前颜色映象的一部分。
[cmin,cmax]=caxis返回映射到颜色映象中第一和最后输入项的最小和最大的数据。它们通常被设成数据的最小值和最大值。比如,函数mesh(peaks) 会画出函数peaks的网格图,并把颜色轴caxis设为[-6.
5466,8.0752],即z的最小值和最大值。这些值之间的数据点,使用从颜色映象中经插值得到的颜色。
如:i=imread('e:\'
imshow(i);
colorbar;
4 .figure
figure函数用于设定图像显示窗口,如:figure(1); figure(2);
caxis([-3 8]) colorbar;
标尺标度从-3,到8 显示标度尺。
三。 图像的变换。
1. fft2
fft2函数用于数字图像的二维傅立叶变换,如:
i=imread('e:\'
j=fft2(i);
2. ifft2
ifft2函数用于数字图像的二维傅立叶反变换,如:
i=imread('e:\'
j=fft2(i);
k=ifft2(j);
3. 利用fft2计算二维卷积。
利用fft2函数可以计算二维卷积,如:
a=[8,1,6;3,5,7;4,9,2];
b=[1,1,1;1,1,1;1,1,1];
a(8,8)=0;
b(8,8)=0;
c=ifft2(fft2(a).*fft2(b));
c=c(1:5,1:5);
利用conv2(二维卷积函数)校验, 如:
a=[8,1,6;3,5,7;4,9,2];
b=[1,1,1;1,1,1;1,1,1];
c=conv2(a,b);
四。 模拟噪声生成函数和预定义滤波器。
1. imnoise
imnoise函数用于对图像生成模拟噪声,如:
i=imread('e:\'
j=imnoise(i,'gaussian',0,0.02);%模拟高斯噪声。
2. fspecial
fspecial函数用于产生预定义滤波器,如:
h=fspecial('sobel');sobel水平边缘增强滤波器。
h=fspecial('gaussian');高斯低通滤波器。
h=fspecial('laplacian');拉普拉斯滤波器。
h=fspecial('log');高斯拉普拉斯(log)滤波器。
h=fspecial('**erage');均值滤波器。
五。 图像的增强。
1. 直方图。
imhist函数用于数字图像的直方图显示,如:
i=imread('e:\'
imhist(i);
2. 直方图均化。
histeq函数用于数字图像的直方图均化,如:
i=imread('e:\'
j=histeq(i);
3. 对比度调整。
imadjust函数用于数字图像的对比度调整,如:
i=imread('e:\'
j=imadjust(i,[0.3,0.7],[
4. 对数变换。
log函数用于数字图像的对数变换,如:
i=imread('e:\'
j=double(i);
k=log(j);
5. 基于卷积的图像滤波函数。
filter2函数用于图像滤波,如:
i=imread('e:\'
h=[1,2,1;0,0,0;-1,-2,-1];
j=filter2(h,i);
6. 线性滤波。
利用二维卷积conv2滤波, 如:
i=imread('e:\'
h=[1,1,1;1,1,1;1,1,1];
h=h/9;
j=conv2(i,h);
7. 中值滤波。
medfilt2函数用于图像的中值滤波,如:
i=imread('e:\'
j=medfilt2(i);
8. 锐化。
1)利用sobel算子锐化图像, 如:
i=imread('e:\'
h=[1,2,1;0,0,0;-1,-2,-1];%sobel算子。
j=filter2(h,i);
2)利用拉氏算子锐化图像, 如:
i=imread('e:\'
j=double(i);
h=[0,1,0;1,-4,0;0,1,0];%拉氏算子。
k=conv2(j,h,'same');
m=j-k;
六。 举例。
二维傅立叶变换和二维傅立叶反变换:
i=imread('e:\'
figure(1);
imshow(i);
colorbar;
j=fft2(i);
k=fftshift(j);
figure(2);
l=log(abs(k));
imshow(l,
colorbar
n=ifft2(j)/255;
figure(3);
imshow(n);
colorbar;
图像的变换。
1. 离散傅立叶变换的 matlab 实现。
matlab 函数 fft、fft2 和 fftn 分别可以实现一维、二维和 n 维 dft 算法;而函数 ifft、ifft2 和 ifftn 则用来计算反 dft 。这些函数的调用格式如下:
a=fft(x,n,dim)
其中,x 表示输入图像;n 表示采样间隔点,如果 x 小于该数值,那么 matlab 将会对 x 进行零填充,否则将进行截取,使之长度为 n ;dim 表示要进行离散傅立叶变换。
a=fft2(x,mrows,ncols)
其中,mrows 和 ncols 指定对 x 进行零填充后的 x 大小。
a=fftn(x,size)
其中,size 是一个向量,它们每一个元素都将指定 x 相应维进行零填充后的长度。
函数 ifft、ifft2 和 ifftn的调用格式于对应的离散傅立叶变换函数一致。
例子:图像的二维傅立叶频谱。
读入原始图像。
i=imread(''
imshow(i)
求离散傅立叶频谱。
j=fftshift(fft2(i));
figure;
imshow(log(abs(j)),8,10])
2. 离散余弦变换的 matlab 实现。
2.1. dct2 函数。
功能:二维 dct 变换。
格式:b=dct2(a)
b=dct2(a,m,n)
b=dct2(a,[m,n])
说明:b=dct2(a) 计算 a 的 dct 变换 b ,a 与 b 的大小相同;b=dct2(a,m,n) 和 b=dct2(a,[m,n]) 通过对 a 补 0 或剪裁,使 b 的大小为 m×n。
2.2. dict2 函数。
功能:dct 反变换。
格式:b=idct2(a)
b=idct2(a,m,n)
b=idct2(a,[m,n])
说明:b=idct2(a) 计算 a 的 dct 反变换 b ,a 与 b 的大小相同;b=idct2(a,m,n) 和 b=idct2(a,[m,n]) 通过对 a 补 0 或剪裁,使 b 的大小为 m×n。
2.3. dctmtx函数。
功能:计算 dct 变换矩阵。
格式:d=dctmtx(n)
说明:d=dctmtx(n) 返回一个 n×n 的 dct 变换矩阵,输出矩阵 d 为 double 类型。
3. 图像小波变换的 matlab 实现。
3.1 一维小波变换的 matlab 实现。
1) dwt 函数。
功能:一维离散小波变换。
格式:[ca,cd]=dwt(x,'wname')
[ca,cd]=dwt(x,lo_d,hi_d)
说明:[ca,cd]=dwt(x,'wname') 使用指定的小波基函数 'wname' 对信号 x 进行分解,ca、cd 分别为近似分量和细节分量;[ca,cd]=dwt(x,lo_d,hi_d) 使用指定的滤波器组 lo_d、hi_d 对信号进行分解。
2) idwt 函数。
功能:一维离散小波反变换。
格式:x=idwt(ca,cd,'wname')
x=idwt(ca,cd,lo_r,hi_r)
x=idwt(ca,cd,'wname',l)
x=idwt(ca,cd,lo_r,hi_r,l)
说明:x=idwt(ca,cd,'wname') 由近似分量 ca 和细节分量 cd 经小波反变换重构原始信号 x 。
'wname' 为所选的小波函数。
x=idwt(ca,cd,lo_r,hi_r) 用指定的重构滤波器 lo_r 和 hi_r 经小波反变换重构原始信号 x 。
Matlab图像处理函数
读取图像文件到数据数组i i imread filename.fmt 其中,filename为文件名,fmt为图像格式 例如i imread girl,bmp 即从当前路径读图像文件的数据,并保存到矩阵i中。如果图像文件为24位位图,则i为m n 3的数组,其中i 1 表示红色分量的矩阵,其中i 2...
matlab图像处理
matlab 二值图像外轮廓提取。注意 填充时,轮廓线是闭合连续的。im imread filepath读取原图。figure,imshow im,title raw 显示原图。im im2bw im转二值图像。figure,imshow im,title bw 显示二值图像。im2 imfill ...
图像处理函数
彩色 a imread 位置 用于读取索引图像 x,map imread 图像写入 imwrite a,位置 写入索引色 imwrite x,map,位置 图像显示 imshow i 灰度 显示 imshow i,show high show high 指定图像i的数据范围。真色彩 rgb 图像 i...