3D数据绘制唇部图像主要由两部分构成,一个是唇部在X-Y平面的栅格,一个是根据相应Z轴的涂色。主要使用了matlab里meshgrid、surf和shading。

1 使用meshgrid生成栅格

meshgrid(x,y)由向量x和向量y通过复制的方法产生绘制图形时所需的栅格数据点矩阵X、Y。该命令产生栅格数据方法为:将向量X作为矩阵X的一个行向量,并将向量X复制length(y)次,以构成栅格数据点X矩阵;同样,将向量y作为矩阵Y的一个列向量,并将向量y复制length(x)次,以构成栅格数据点Y矩阵。

从图可以看出,在x、y平面生成数据栅格。

但是,通过meshgrid这样生成的都是矩形区域,即根据Z轴涂色的基础就是底层是个矩形,绘制的是规则图像,如果绘制不规则图像,就要使用linspace函数,linspace函数形式为linspace(X1,X2,N),以X1为起始元素,X2为结尾元素,生成等间距的N个元素的列向量,其实整个生成过程都是通过插值完成的,N代表X1和X2之间插多少个数据。本实验中画图使用如下:

[X,Y] = meshgrid(linspace(min(aa),max(a),300),linspace(min(b1),max(b),300));

2 surf绘制三维曲面

通过上步绘完x和y的栅格后,就需要根据Z轴涂色以观察3维效果。Surf的格式为surf(x,y,z),其中X和Y就是上步骤中生成的栅格数据,Z则是X和Y对应的Z轴数据,以此为根据涂色。

但是涂什么颜色就要靠colormap和shading

了,本实验只涂了灰色,所以代码如下:surf(X,Y,Z);

shading interp;

colormap gray;但是上面有个问题没有提到,怎么将Z和X、Y的数据对应上呢,这个时候就要使用:F = TriScatteredInterp(a,b,c);

Z = F(X,Y);

TriScatteredInterp就是将X、Y和Z的数据对应上。

3 坐标轴设置

本实验在坐标轴设置上,主要使用了两个特点,一个是使保存是不保存坐标轴,一个是设置坐标轴范围,分别使用代码如下:axis off %使坐标轴消失

%以下为设置坐标轴范围

midX = (max(a) + min(aa))/2;

midY = (max(bb) + min(b1))/2;

midZ = (max(c) + min(c))/2;

axis( [midX - 0.03,midX + 0.03,midY - 0.022,midY + 0.022,midZ - 0.015,midZ + 0.015]);

4 视角view

Surf画完图之后显示的并不是唇部的正面图,而是一个视点为方位角-37.5°,仰角30°的图像,通过旋转这个三维图,可以看到这个唇部的各个视角,第一眼呈现给观者的是个默认值,可通过view(az,el)定义呈现的视角,az表示方位角,EL

表示仰角。view(2) %投影到xy平面

5 保存print

最后画完图就需要保存图像了,使用print保存,其中通过‘-r9’可以设置保存图像的大小,代码如下:

print(gcf,'-djpeg','-r9',strcat(savepath,imageName));

但是这样保存的图片会保存图片周围大量的空白区域,所以使用以下代码可以将空白区域去掉:

set(gcf, 'PaperPositionMode', 'manual');

set(gcf, 'PaperUnits', 'points');

axis image;

set(gca,'position',[0,0,1,1]);

set(gcf, 'PaperPosition', [0 0 510 510]);

set(gcf,'visible','off');

注:小细节使用hold on和hold

off

参考资料如下:

原文:http://blog.csdn.net/yongchunaq/article/details/37829867

matlab三维向量,matlab三维数据绘图相关推荐

  1. matlab三维可视化,MATLAB中三维数据可视化及应用

    Value Engineering -----------------------作者简介:张晓利(1976-),女,陕西临潼人,硕士研究生,讲师,研究方向为 计算机应用. 0引言 MATLAB 在数 ...

  2. cell matlab三维图,Matlab三维数据画图和等高线数据提取

    1 目的 将4组三维数据,每组数据画散点图(fig1),拟合出一个曲面(fig2),并将特定Z值的等高线投影到XY平面(fig3). 2 主要函数 scatter3( ) 三维散点图 scatter3 ...

  3. matlab绘图z=sin(x_「matlab画三维图」Matlab 应用之绘制三维图形(基础篇) - seo实验室...

    matlab画三维图 在Matlab中,三维图形的绘制包括三维曲线,三维网线图和三维曲面图.闲话不多说,直接进入正题.首先介绍几个函数: 1.plot3(x,y,z,-) 其中,x,y,z为维数相同的 ...

  4. MATLAB系列笔记:三维绘图(一)

    0x00 前言 文章中的文字可能存在语法错误以及标点错误,请谅解: 如果在文章中发现代码错误或其它问题请告知,感谢! MATLAB版本:MATLAB R2018b. 0x01 三维曲线绘图命令 1.p ...

  5. Matlab进阶绘图第4期—三维堆叠柱状图/三维堆积图

    三维堆叠柱状图是堆叠图(见Matlab论文插图绘制模板第6期)在三维空间的拓展. 三维堆叠柱状图不仅可以直观地展示各部分总数的对比,还能够看出各部分在总数中所占的比例,从而使数据更加形像. 当然,三维 ...

  6. matlab 进阶绘图:图片保存,极坐标绘图,函数绘图,等高线地图,三维条形图,三维散点图,gif 绘图

    本文所包含的绘图方式: 极坐标绘图,函数绘图,等高线地图,三维条形图,三维散点图,gif 绘图 1 常用命令 hold on; % 持续绘图 hold off; 1.1 标注 xlabel(''); ...

  7. 如何用MATLAB把一个三维矩阵里的数据中的一页画成三维图并加密网格

    2019年4月24日 关于如何把一个三维矩阵里的数据中的一页画成三维图并加密网格. 已经很久没有用过MATLAB了,话说之前也没处理过三维数据...所以还是花了一点时间找资料的.废话少说... 首先因 ...

  8. matlab 三维动态,matlab三维动态绘图

    matlab 动态绘图,MATLAB R2017a下载 64位免费版,matlab三维动态绘图,matlabtimer动态绘图 matlab绘制动态三维心形代码(蛋疼的情人节奉献)_计算机软件及应用_ ...

  9. matlab体素化,一种三维激光点云数据快速体素化处理方法与流程

    本发明涉及一种三维激光点云数据快速体素化处理方法. 背景技术: 目前,三维激光扫描系统快速发展,由于研究的需要,往往需要把不具有空间长度信息的点数据转为具有三维空间信息的立方体,如何使用软件进行快速. ...

  10. Matlab:Matlab编程语言应用之三维绘图可视化(基础知识点基本函)的使用方法简介、案例实现(三维曲线图机械阻尼振动三维等高线图等案例)之详细攻略

    Matlab:Matlab编程语言应用之三维绘图可视化(基础知识点&基本函)的使用方法简介.案例实现(三维曲线图&机械阻尼振动&三维等高线图等案例)之详细攻略 目录 三维绘图基 ...

最新文章

  1. IIS启动配置的一些命令
  2. OpenCASCADE:适用于 Android 的 OCCT JniViewer 示例
  3. 第十三期:你所了解的javascript?
  4. docker时区问题
  5. arcgis怎么用python重新排序_python - 根据排序数据添加新的顺序ID号(ArcGIS) - 堆栈内存溢出...
  6. 【java】List 根据实体属性值搜索
  7. 【LeetCode】剑指 Offer 04. 二维数组中的查找
  8. 金三银四大厂面经总结,淘汰了80%的Java面试者
  9. 如何更流畅地使用 Google 搜索?
  10. 计算机学数字电子基础知识,什么是数字电路?新手如何快速学习数字电路基础?...
  11. 模糊综合评价模型(上)
  12. 摄影——相机的成像原理
  13. 还在苦恼如何查看微信共同好友吗?用Python轻松搞定
  14. Delphi ADOQuery
  15. PPT中表格的插入与结构调整
  16. oracle 同义词表结构,Oracle 数据库的同义词+视图
  17. 《Residual Networks Behave Like Ensembles of Relatively Shallow Networks》笔记
  18. SSA优化章:SSA优化PID
  19. html css超链接字体颜色,HTML-CSS设置超链接颜色字体
  20. html背景图片动效,css3实现点击切换背景图片,并且背景图片实现动画效果

热门文章

  1. wts文件生成engine文件的方法
  2. 会议纪要模板----正式文档
  3. Python学习笔记(15)-Python代码转换为exe可执行程序详解
  4. 【2】CH347应用--在OpenOCD添加CH347-USB转JTAG接口
  5. .vimrc快捷键设置
  6. 在线答题系统(小型HTTP服务器)
  7. 贡献度分析--帕累托图
  8. 深入理解栈(Stack)
  9. 某宁detect、feature参数分析
  10. 洛谷P1563 玩具谜题