您的位置:首页 > 编程语言 > MATLAB

Matlab常用图像操作

2009-05-01 14:56 399 查看
原帖地址:http://blog.verycd.com/ari/showentry=48371

一 读写图像文件

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(

);

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,

;

四 模拟噪声生成函数和预定义滤波器

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: