三维形式显示图像





将图片 以三维的形式显示 灰度值作为Z轴高度的话

这里的prishape 是一个二值图,下面代码是要用三维形式  绘制该图的水平集图像
方法一
m=imread('Fig12.18(a1).jpg');
m=im2bw(m);
primask=1-m;
prishape = bwdist(primask)-bwdist(1-primask)+im2double(primask)-.5; % SDF 距离函数
prishape =double(prishape);
[m n]=size(prishape);
[X, Y] = meshgrid(1:n, 1:m);
Z = prishape;
figure,
meshc(X, Y, Z) % mesh meshc meshz 三个函数分别绘制三种类型 三维图
%    axis([ 1 230 1 418 -44 123])




方法二 
m=imread('Fig12.18(a1).jpg');
primask=1-m;
prishape = bwdist(primask)-bwdist(1-primask)+im2double(primask)-.5; % SDF 距离函数
prishape =double(prishape);
[m n]=size(prishape);     
z=zeros(m,n);%z为二维数组,行列数可以不一样    
for i=1:m  
    for j=1:n         
        z(i,j)=prishape(i,j);%利用z=f(x,y)来计算z的值  
    end  
end    
surf(z,'EdgeColor','None');%绘制z的3D图  
shading interp;  


结果如下



针对函数的   另外一种 绘制三维图像 方法 (转载 http://blog.csdn.net/walkandthink/article/details/12887267)

  1. m=50;  
  2. n=60;  
  3. x=zeros(m,1);%生成长度为m的一维数组  
  4. y=zeros(n,1);%生成长度为n的一维数组  
  5.   
  6. for i=1:m  
  7.     x(i)=-4.0+i*8.0/m;%对x进行初始化  
  8. end  
  9.   
  10. for j=1:n  
  11.     y(j)=-4.0+8.0*j/n;%对y进行初始化  
  12. end  
  13. %利用x,y得到z=f(x,y),这里z为一个二维数组  
  14.   
  15. z=zeros(m,n);%z为二维数组,行列数可以不一样  
  16.   
  17. for i=1:m  
  18.     for j=1:n  
  19.         tempx=x(i);  
  20.         tempy=y(j);  
  21.         z(i,j)=tempx^3+tempy^2;%利用z=f(x,y)来计算z的值  
  22.     end  
  23. end  
  24.   
  25. surf(z,'EdgeColor','None');%绘制z的3D图  
  26. shading interp;  
  27. 最后结果是:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值