paper 2:图像处理常用的Matlab函数汇总

一 图像的读写 

1 imread

imread函数用于读入各种图像文件,如:a=imread('e:\w01.tif')

注:计算机E盘上要有w01相应的.tif文件。

2 imwrite

imwrite函数用于写入图像文件,如:imwrite(a,'e:\w02.tif',tif)

3 imfinfo

imfinfo函数用于读取图像文件的有关信息,如:imfinfo('e:\w01.tif')

二 图像的显示

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:\w01.tif');

imshow(i);

3 colorbar

colorbar函数用显示图像的颜色条,如:

i=imread('e:\w01.tif');

imshow(i);

colorbar;

4 figure

figure函数用于设定图像显示窗口,如:figure(1); /figure(2)

三 图像的变换 

1 fft2

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

i=imread('e:\w01.tif');

j=fft2(i);

2 ifft2

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

i=imread('e:\w01.tif');

j=fft2(i);

k=ifft2(j);

利用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:\w01.tif');

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('average');%均值滤波器

五 图像的增强

直方图

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

i=imread('e:\w01.tif');

imhist(i);

直方图均衡化

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

i=imread('e:\w01.tif');

j=histeq(i);

对比度调整

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

i=imread('e:\w01.tif');

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

对数变换

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

i=imread('e:\w01.tif');

j=double(i);

k=log(j);

基于卷积的图像滤波函数

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

i=imread('e:\w01.tif');

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

j=filter2(h,i);

线性滤波

利用二维卷积conv2滤波:

i=imread('e:\w01.tif');

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

h=h/9;

j=conv2(i,h);

中值滤波

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

i=imread('e:\w01.tif');

j=medfilt2(i);

锐化

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

i=imread('e:\w01.tif');

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

j=filter2(h,i);

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

i=imread('e:\w01.tif');

j=double(i);

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

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

m=j-k;

六 举例

二维傅立叶变换和二维傅立叶反变换:

i=imread('e:\w01.tif');

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; 

Matlab中图像函数大全 

图像增强 

1. 直方图均衡化的 Matlab 实现

1.1 imhist 函数

功能:计算和显示图像的色彩直方图

格式:imhist(I,n)

        imhist(X,map)

说明:imhist(I,n) 其中,为指定的灰度级数目,缺省值为256imhist(X,map) 就算和显示索引色图像 的直方图,map 为调色板。用 

stem(x,counts) 同样可以显示直方图。

1.2 imcontour 函数

功能:显示图像的等灰度值图

格式:imcontour(I,n),imcontour(I,v)

说明:为灰度级的个数,是有用户指定所选的等灰度级向量。

1.3 imadjust 函数

功能:通过直方图变换调整对比度

格式:J=imadjust(I,[low high],[bottom top],gamma)

        newmap=imadjust(map,[low high],[bottom top],gamma)

说明:J=imadjust(I,[low high],[bottom top],gamma) 其中,gamma 为校正量r[low high] 为原图像中要变换的灰度范围,[bottom top] 

指定了变换后的灰度范围;newmap=imadjust(map,[low high],[bottom top],gamma) 调整索引色图像的调色板 map 。此时若 [low high] 和 

[bottom top] 都为2×3的矩阵,则分别调整 RGB 3个分量。

1.4 histeq 函数

功能:直方图均衡化

格式:J=histeq(I,hgram)

        J=histeq(I,n)

        [J,T]=histeq(I,...)

        newmap=histeq(X,map,hgram)

        newmap=histeq(X,map)

        [new,T]=histeq(X,...)

说明:J=histeq(I,hgram) 实现了所谓“直方图规定化”,即将原是图象 的直方图变换成用户指定的向量 hgram hgram 中的每一个元素 

都在 [0,1] 中;J=histeq(I,n) 指定均衡化后的灰度级数 ,缺省值为 64[J,T]=histeq(I,...) 返回从能将图像 的灰度直方图变换成 

图像 的直方图的变换 newmap=histeq(X,map) 和 [new,T]=histeq(X,...) 是针对索引色图像调色板的直方图均衡。

你可能感兴趣的:(paper 2:图像处理常用的Matlab函数汇总)