【三维重建】之 matlab读取 .wrl 三维图像文件
matlab读取 .wrl 三维图像文件
1. wrl 文件
- wrl(虚拟现实语言): wrl文件是一种虚拟现实文本格式文件。也是VRML的场景模型文件的扩展名。
- wrl文件是纯ASCII文件,所以可以用文本编辑器打开和编辑。虽然这样,但是对于大型的3D文件。用纯手工的方法是不可取的。应该选择用三维软件(maya,max等)进行场景建模和输出。
- 可通过SolidWorks制作导出
- 可通过matlab打开可视化
例如scene.wrl 文件,其内容如下:
#VRML V2.0 utf8
Transform {children [DEF model1 Transform {children [DEF body1 Transform {translation -1 0 0children [DEF shape1 Shape {appearance Appearance {material Material {diffuseColor 1.0 1.0 0.0}}geometry Box {size 1.5 1.5 1.5}}]}]}DEF model2 Transform {children [DEF body2 Transform {translation 1 0 0children [DEF shape2 Shape {appearance Appearance {material Material {diffuseColor 1.0 1.0 0.0}}geometry Box {size 1.5 1.5 1.5}}]}]}]
}
2. matlab打开.wrl文件
%********************打开.wrl文件*************
vrsetpref('DefaultViewer', 'internalv5')
w = vrworld('scene.wrl');
open(w);
view(w);
3. matlab绘制wrl内的三维坐标点
txt格式打开.wrl文件,直接复制点集坐标到matlab代码中,并在每行坐标后边添加...
%绘制三维点
%%base_link
P=[ -0.075000 -0.100000 0.000000, -0.075000 -0.100000 0.570000, -0.075000 -0.075000 0.436008, -0.075000 -0.073559 0.421376, -0.075000 -0.073559 0.450639,...-0.075000 -0.069291 0.407306, -0.075000 -0.069291 0.464709, -0.075000 -0.062360 0.394340, -0.075000 -0.062360 0.477675, -0.075000 -0.053033 0.382975,...-0.075000 -0.053033 0.489041, -0.075000 -0.041668 0.373647, -0.075000 -0.041668 0.498368, -0.075000 -0.028701 0.366717, -0.075000 -0.028701 0.505299,...-0.075000 -0.014632 0.362449, -0.075000 -0.014632 0.509567, -0.075000 0.000000 0.361008, -0.075000 0.000000 0.511008, -0.075000 0.014632 0.362449,...-0.075000 0.014632 0.509567, -0.075000 0.028701 0.366717, -0.075000 0.028701 0.505299, -0.075000 0.041668 0.373647, -0.075000 0.041668 0.498368,...-0.075000 0.053033 0.382975, -0.075000 0.053033 0.489041, -0.075000 0.062360 0.394340, -0.075000 0.062360 0.477675, -0.075000 0.069291 0.407306,...-0.075000 0.069291 0.464709, -0.075000 0.073559 0.421376, -0.075000 0.073559 0.450639, -0.075000 0.075000 0.436008, -0.075000 0.100000 0.000000,...-0.075000 0.100000 0.570000, -0.025000 -0.075000 0.436008, -0.025000 -0.073559 0.421376, -0.025000 -0.073559 0.450639, -0.025000 -0.069291 0.407306,...-0.025000 -0.069291 0.464709, -0.025000 -0.062360 0.394340, -0.025000 -0.062360 0.477675, -0.025000 -0.053033 0.382975, -0.025000 -0.053033 0.489041,...-0.025000 -0.041668 0.373647, -0.025000 -0.041668 0.498368, -0.025000 -0.028701 0.366717, -0.025000 -0.028701 0.505299, -0.025000 -0.014632 0.362449,...-0.025000 -0.014632 0.509567, -0.025000 0.000000 0.361008, -0.025000 0.000000 0.436008, -0.025000 -0.000000 0.511008, -0.025000 0.014632 0.362449,...-0.025000 0.014632 0.509567, -0.025000 0.028701 0.366717, -0.025000 0.028701 0.505299, -0.025000 0.041668 0.373647, -0.025000 0.041668 0.498368,...-0.025000 0.053033 0.382975, -0.025000 0.053033 0.489041, -0.025000 0.062360 0.394340, -0.025000 0.062360 0.477675, -0.025000 0.069291 0.407306,...-0.025000 0.069291 0.464709, -0.025000 0.073559 0.421376, -0.025000 0.073559 0.450639, -0.025000 0.075000 0.436008, 0.075000 -0.100000 0.000000,...0.075000 -0.100000 0.570000, 0.075000 0.100000 0.000000, 0.075000 0.100000 0.570000 ]i=1
while i<length(P)scatter3(P(i),P(i+1),P(i+2));hold oni=i+3;
end
4. 对三维点进行空间旋转变换
%旋转矩阵:
%绕x\y\z轴旋转,输入弧度
function [R]=getR(a,flg)R=[]if(flg==0)R=[ 1 0 0;0 cos(a) -sin(a);0 sin(a) cos(a)];elseif(flg==1)R=[ cos(a) 0 sin(a);0 1 0 ;-sin(a) 0 cos(a)];elseif(flg==2)R=[ cos(a) -sin(a) 0;sin(a) cos(a) 0 ;0 0 1];end
end
接标题3中的点集格式如下计算:
rx=getR(-pi/2,0);
points0=points*rxry=getR(-pi/2,1);
points1=points*ryrz=getR(-pi/2,2)
points2=point*rz
【三维重建】之 matlab读取 .wrl 三维图像文件相关推荐
- 【三维人脸识别】matlab读取.wrl三维图像文件
1.在matlab上读取.wrl文件的步骤: (并不需要额外安装工具) vrsetpref('DefaultViewer', 'internalv5') w = vrworld('xxx.wrl'); ...
- matlab读取grib三维数据,matlab读取grib2文件
用matlab读取nc文件是简单的.但气象局的很多数据存储文件是grib2格式的.该如何读取呢?看了网上的众多方法,nctoolbox,read_grib都没有成功.最后投机取巧,用了36计中的瞒天过 ...
- matlab读取grib三维数据,Grib格式数据处理
上次我们说到了如何,这次我们说一下如何使用python处理grib格式数据. Grib格式是一种应用于气象领域的简明数据格式,由世界气象组织进行标准化.通常用来存储历史气象数据.当前有3个版本的gri ...
- matlab读取医学图像MetaImage类型的.mha和.mhd文件
0.简单说明: matlab读取DICOM医学图像文件的方式很简单直接,matlab自带dicomread函数. >> help dicomread dicomread - Read DI ...
- MATLAB读取TECPLOT笛卡尔网格三维流场数据
基于笛卡尔网格的三维流动数值模拟,其流场信息可以通过tecplot格式进行输出,方便tecplot对流场进行可视化处理,但对数据进行在加工时,还是导入matlab中比较方便,那么对于一个tecplot ...
- matlab怎么输出图像文件夹,Matlab读取图片 显示和保存图像的相关操作
当前有部份朋友还不清楚Matlab读取图片 显示和保存图像的操作,所以下面绿软吧就带来Matlab读取图片 显示和保存图像的相关操作,一起来看看吧! Matlab读取图片 显示和保存图像的相关操作 打 ...
- matlab读取/播放视频的函数(2)
1.用matlab读取avi 视频(只能读一定压缩各式的avi 电影,这是因为avi视频文件的编码 有很多,而matlab只支持部分编码格式.可见 http://blog.csdn.net/IdoIw ...
- (医学三维重建)MATLAB体绘制算法:多层面重建(MPR)
(医学三维重建)MATLAB体绘制算法:多层面重建(MPR) 算法原理 代码实现 测试结果 其他 by HPC_ZY 算法原理 体绘制中比较特殊的一种,因为它的输出是各种切面. 就好比用刀切开一个物体 ...
- (医学三维重建)MATLAB体绘制算法:最大密度投影(MIP)
(医学三维重建)MATLAB体绘制算法:最大密度投影(MIP) 算法原理 代码实现 实验结果 其他 by HPC_ZY 算法原理 体绘制原理(大多数) 用一矩形屏幕正对三维模型,从屏幕投射出M*N条平 ...
最新文章
- 局部响应归一化LRN(Local Response Normalization)
- 和我一起学Windows Workflow Foundation(1)-----创建和调试一个WF实例(转)
- 信息系统项目管理师论文范文-干系人管理
- laravel+php+支付功能,laravel+微信支付源码
- 接口中也可以有方法了
- 为什么要使用React Hooks?(5分钟实例)
- 多个相同参数表单提交
- 存放在外存上的数据关机后_小鑫话题 | 惊了!关机后SSD会丢数据?
- Linux远程桌面服务VNC/XRDP/Xdmcp/SSH+X11转发及其在树莓派上的使用
- Java基础---接口的使用
- 如何快速看懂一家公司,判断出公司的价值?投资和创业的必备基础知识
- mock如何为空_如何 mock 数据
- java中的this.id_Java this关键字
- Emacs一个键绑定多个命令
- python用模块读取xml文件_Python之xml文档及配置文件处理(ElementTree模块、ConfigParser模块)...
- Linux下编写GT911触摸驱动
- 黑客突破防火墙常用的几种技术(转)
- 宏基掠夺者圣盾5000、圣盾3000 评测
- Jenkins-LADP认证管理员密码修改后导致Jenkins没法登陆
- 从零开始学USB(二十一、USB接口HID类设备(三)_报表描述符Global类)