Matlab常用图像操作

来源:互联网 发布:苹果启用4g语音与数据 编辑:程序博客网 时间:2024/05/03 01:22

http://blog.csdn.net/superdont/archive/2007/04/06/1553980.aspx

一 读写图像文件

    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;

原创粉丝点击