MatLab代码大全.doc

上传人:b****1 文档编号:231240 上传时间:2022-10-07 格式:DOC 页数:55 大小:268KB
下载 相关 举报
MatLab代码大全.doc_第1页
第1页 / 共55页
MatLab代码大全.doc_第2页
第2页 / 共55页
MatLab代码大全.doc_第3页
第3页 / 共55页
MatLab代码大全.doc_第4页
第4页 / 共55页
MatLab代码大全.doc_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

MatLab代码大全.doc

《MatLab代码大全.doc》由会员分享,可在线阅读,更多相关《MatLab代码大全.doc(55页珍藏版)》请在冰豆网上搜索。

MatLab代码大全.doc

第2章图像获取

2.3.2二维连续傅里叶变换

例2.2

figure

(1);%建立图形窗口1

[u,v]=meshgrid(-1:

0.01:

1);%生成二维频域网格

F1=abs(sinc(u.*pi));

F2=abs(sinc(v.*pi));

F=F1.*F2;%计算幅度频谱F=|F(u,v)|

surf(u,v,F);%显示幅度频谱,如图2.3(b)

shadinginterp;%平滑三维曲面上的小格

axisoff;%关闭坐标系

figure

(2);%建立图形窗口2

F1=histeq(F);%扩展F的对比度以增强视觉效果

imshow(F1);%用图像来显示幅度频谱,如图2.3(c)

第3章图像变换

3.4.4二维FFT的MATLAB实现

例3.2简单图像及其傅里叶变换

MATLAB程序:

%建立简单图像d并显示之

d=zeros(32,32);%图像大小32´32

d(13:

20,13:

20)=1;%中心白色方块大小为8´8

figure

(1);%建立图形窗口1

imshow(d,'notruesize');%显示图像d如图3.5(a)所示

%计算傅里叶变换并显示之

D=fft2(d);%计算图像d的傅里叶变换,fft2(d)=fft(fft(d).').'

figure

(2);%建立图形窗口2

imshow(abs(D),[-15],'notruesize');%显示图像d的傅里叶变换谱如3.5(b)所示

例3.3MATLAB图像及其傅里叶变换谱

MATLAB程序:

figure

(1);

loadimdemossaturn2;%装入MATLAB图像saturn2

imshow(saturn2);%显示图像saturn2如图3.6(a)所示

figure

(2);

S=fftshift(fft2(saturn2));%计算傅里叶变换并移位

imshow(log(abs(S)),[]);%显示傅里叶变换谱如3.6(b)所示

例3.4真彩图像及其傅里叶变换谱

MATLAB程序:

figure

(1);

A=imread('image1.jpg');%装入真彩图像,见图1.1(b)

B=rgb2gray(A);%将真彩图像转换为灰度图像

imshow(B);%显示灰度图像如图3.7(a)所示

C=fftshift(fft2(B));%计算傅里叶变换并移位

figure

(2);

imshow(log(abs(C)),[]);%显示傅里叶变换谱如3.7(b)所示

3.5.4离散余弦变换的MATLAB实现

例3.5计算并显示真彩图像余弦变换的MATLAB程序如下:

RGB=imread('image2.jpg');%装入真彩图像

figure

(1);

imshow(RGB);%显示彩色图像

GRAY=rgb2gray(RGB);%将真彩图像转换为灰度图像

figure

(2);

imshow(GRAY);%显示灰度图像如图3.10(a)所示

DCT=dct2(GRAY);%进行余弦变换

figure(3);

imshow(log(abs(DCT)),[]);%显示余弦变换如图3.10(b)所示。

3.8.2Radon变换的MATLAB实现

例3.8真彩图像的Radon变换

MATLAB程序如下:

RGB=imread('image2.jpg');%装入真彩图像

GRAY=rgb2gray(RGB);%将真彩图像转换为灰度图像

figure

(2);

imshow(GRAY);%显示灰度图像如图3.16(a)

[R,xp]=radon(GRAY,[045]);%计算变换角度为0°和45°的Radon变换

figure;plot(xp,R(:

1));title('R_{0^o}(x\prime)')

%显示0°方向上的Radon变换如图3.16(b)

figure;plot(xp,R(:

2));title('R_{45^o}(x\prime)')

%显示45°方向上的Radon变换如图3.16(c)

例3.9连续角度的Radon变换

对于一组连续角度的Radon变换通常用一幅图像来表示。

本例先建立一幅简单图像,然后令变换角度从0°以1°的增量变化到180°时的Radon变换情况。

其MATLAB程序如下:

I=zeros(100,100);%建立简单图像如图3.17(a)

I(25:

75,25:

75)=1;

figure

(1);imshow(I);

theta=0:

180;%规定变换角度的范围

[R,xp]=radon(I,theta);%计算Radon变换

figure

(2);

imagesc(theta,xp,R);%以图像方式显示变换结果R,

%其x轴和y轴分别为theta和xp

title(‘R_{\theta}(X\prime)’);%显示图像标题

xlabel(‘\theta(degrees)’);%显示x坐标“”

ylabel(‘X\prime’);%显示y坐标“”

set(gca,’Xtick’,0:

20:

180);%设置x坐标刻度

colormap(hot);%设置调色板

colorbar;%显示当前图像的调色板

第4章图像增强

4.2.1直接灰度变换

Matlab程序实现图像求反:

I=imread('cameraman.tif');

imshow(I)

I=double(I)

I=256-1-I

I=uint8(I)

figure

imshow(I)

例4.1

用Matlab程序实现线性灰度变换的图像增强:

%读入并显示原始图像

I=imread('pout.tif');

imshow(I);

I=double(I);

[M,N]=size(I);

%进行线性灰度变换

fori=1:

M

forj=1:

N

ifI(i,j)<=30

I(i,j)=I(i,j);

elseifI(i,j)<=150

I(i,j)=(200-30)/(150-30)*(I(i,j)-30)+30;

else

I(i,j)=(255-200)/(255-150)*(I(i,j)-150)+200;

end

end

end

例4.2

I=imread('lena.bmp');

figure;imshow(I);

I=double(I);

I2=41*log(1+I);

I2=uint8(I2);

figure;imshow(I2);

例4.3

灰度切割变换的Matlab的程序如下:

I=imread('007.bmp');

figure;imshow(I);

I=double(I)

[M,N]=size(I);

fori=1:

M

forj=1:

N

ifI(i,j)<=50

I(i,j)=40;

elseifI(i,j)<=180

I(i,j)=220;

else

I(i,j)=40;

end

end

end

I=uint8(I);

figure;imshow(I);

例4.4

具体Matlab程序如下:

I=imread('lena.bmp');

imshow(I);

I=double(I);

[M,N]=size(I);

fork=1:

8

J=zeros(M,N);

fori=1:

M

forj=1:

N

temp=I(i,j);

s1=0;s2=0;

range=[k:

-1:

1];

ford=range

s1=2^(8-d)+s1;s2=2^(8-d+1);

iftemp>=s1&temp

J(i,j)=255;break;

end

end

end

end

J=uint8(J);

figure;imshow(J);

end

4.2.2直方图修正

例4.6直方图均衡化效果实例

用Matlab中的histeq函数实现直方图均衡化的程序如下:

I=imread('circuit.tif');

figure

subplot(221);imshow(I);

subplot(222);imhist(I)

I1=histeq(I);

figure;

subplot(221);imshow(I1)

subplot(222);imhist(I1)

例4.8:

直方图规定效果实例

用matlab中的histeq函数实现直方图均衡化的程序如下:

I=imread('circuit.tif');

[M,N]=size(I);

fori=1:

8:

257

counts(i)=i;

end

Q=imread('circuit.tif');

N=histeq(Q,counts);

figure

subplot(221);imshow(N);

subplot(222);imhist(N);

axis([026005000]);

4.2.3图像间运算

例:

用图像平均减少随机噪声

I=imread('tire.tif');

[M,N]=size(I);

II1=zeros(M,N);

fori=1:

16

II(:

:

i)=imno

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1