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

MATLAB 函数 mesh()用法

2016-10-21 20:50 309 查看
mesh是画三维图,我是某次做图像处理时用到它画频谱图,先给出一个简单的例程:

clc,clear;
m=(1:10);%x轴的长度
n=(1:10);%y轴的长度
[u,v]=meshgrid(m,n);%分别形成m*m的方阵,n*n的方阵
mesh(m,n,u+v);%画出z=x+y的三维图

meshgrid函数形成(x,y)的方阵,是m*n*2的一个矩阵,z=f(x,y)可以在[u,v]上取到所有的x,y值,当你需要画z=f(x,y)这样一个函数的时候就需要meshgrid;

注意:用mesh画图,x、y的长度要相等,即m=n;

下面是例程的结果:



再给出一个图像频谱图的例程:由于频谱图每个点的值不需要通过f(x,y)这样的函数来计算,所以不需要用到meshgrid;

注意:用mesh画图,x、y的长度要相等,即m=n;

clc,clear;
I = imread('test2.bmp');
f = fft2(double(I));%傅立叶变换
[M,N] = size(f);
m=max(M,N);
f1=zeros(m);

%为了使x,y的长度一样,把较短的行或者列补零
for x=1:m
for y=1:m
if (x >M)||(y>N)
f1(x,y)=0;
else
f1(x,y)=f(x,y);
end
end
end

u=(1:m);
v=(1:m);
mesh(u,v,real(f1));%画图取频谱的实部
频谱图:中间那根红的就是直流分量

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