原创 matlab常用图像函数,转载。

2010-2-22 20:38 1669 6 6 分类: 软件与OS

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);

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

图像的增强

1
直方图

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

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

imhist(i);

2
直方图均化

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

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

j=histeq(i);

3
对比度调整

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

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

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

4
对数变换

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

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

j=double(i);

k=log(j);

5
基于卷积的图像滤波函数

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

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

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

j=filter2(h,i);

6
线性滤波

利用二维卷积conv2滤波, :

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

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

h=h/9;

j=conv2(i,h);

7
中值滤波

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

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

j=medfilt2(i);

8
锐化

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) 其中,n 为指定的灰度级数目,缺省值为256imhist(X,map) 就算和显示索引色图像 X 的直方图,map 为调色板。用


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



1.2 imcontour
函数

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

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

说明:n 为灰度级的个数,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) 实现了所谓直方图规定化,即将原是图象 I 的直方图变换成用户指定的向量 hgram hgram 中的每一个元素


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


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

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条