当前位置:   article > 正文

【三维重建】基于切片的三维重建MATLAB仿真_set(gca, 'zdir', 'reverse');

set(gca, 'zdir', 'reverse');
  1. clc,clear
  2. v=csvread('vdata.txt'); % 数据 这里的数据矩阵为v(5*27*6),可以看成一本27页纸,每页绘制了5*6的网格,
  3. % 然后27页纸叠在一起。当你理解本图绘制后,数据可以随意制作
  4. % 读取文件,也可以读取一部分
  5. v=reshape(v,5,27,6); % 语法是 A = reshape(A,m,n); 或者 A = reshape(A,[m,n]);
  6. % 都是将A 的行列排列成m行n列。另外 reshape是按照列取数据的
  7. [x,y,z]=meshgrid(1:27,1:5,1:6); % 三维网格化
  8. h=figure(1);
  9. set(h,'name','取单切片')
  10. subplot(221)
  11. slice(x,y,z,v,[],[1],[]); % 切片函数 y=1
  12. shading interp % 平滑处理
  13. set(gca,'zdir','reverse'); % ‘’都是属性调整
  14. axis equal % 将横轴纵轴的定标系数设成相同值 ,即单位长度相同
  15. grid on
  16. subplot(222)
  17. slice(x,y,z,v,[],[2],[]); % 切片函数 y=2
  18. shading interp % 平滑处理
  19. colormap('jet') % 颜色属性
  20. set(gca,'zdir','reverse'); % ‘’都是属性调整
  21. axis equal
  22. grid on
  23. subplot(223)
  24. slice(x,y,z,v,[],[3],[]);
  25. shading interp
  26. set(gca,'zdir','reverse');
  27. axis equal
  28. grid on
  29. subplot(224)
  30. slice(x,y,z,v,[],[4],[]);
  31. shading interp
  32. set(gca,'zdir','reverse');
  33. axis equal
  34. grid on
  35. % 2.全空间立体切片
  36. h2=figure(2);
  37. set(h2,'name','全空间切片','MenuBar','none','ToolBar','none')
  38. slice(x,y,z,v,[1:2:27],[2 3 4],[2 3 4 5]) % x方向1-27,以2位单元,y方向 分成3分,z方向分成4
  39. shading interp % 图像平滑
  40. colorbar % 颜色条
  41. colormap('jet') % 颜色属性
  42. set(gca,'zdir','reverse'); % 属性调整
  43. axis equal
  44. grid on
  45. box on % 显示坐标区轮廓 显示围绕当前坐标区的框轮廓
  46. % 3.立体包络图
  47. h3=figure(3);
  48. subplot(221);
  49. set(h3,'name','定值包络立体图','MenuBar','none','ToolBar','none')
  50. set(gcf,'InvertHardcopy','off')
  51. fw=150; % fw是作主要可变参数,控制最外层包络面的值 %%此值为最外层包络面取值
  52. fv=isosurface(x,y,z,v,fw); % 从三维体数据中提取等值面数据
  53. % isovalue 中指定的等值面值处的体数据 V 计算等值面数据。等值面连接具有指定值的点,与等高线连接仰角相同的点的方式大致相同
  54. p=patch(fv); % 创建一个或多个填充多边形
  55. set(p,'facecolor','b','edgecolor','none');
  56. patch(isocaps(x,y,z,v, fw), 'FaceColor', 'interp', 'EdgeColor', 'none');% isocaps 计算等值面端帽几何图
  57. % colorbar
  58. % colormap('jet')
  59. box on
  60. daspect([1,1,1]) % 坐标轴尺寸变化为1:1:1
  61. view(3) % 观看角度 三维视角
  62. set(gca,'zdir','reverse','color',[0.2,0.2,0.2]);
  63. camlight % 在照相机坐标系中创建或移动光源对象
  64. camproj perspective % 设置或查询投影类型
  65. lighting phong % 指定光照算法
  66. axis equal
  67. grid on
  68. % title(['最外层表面的值为: ' , num2str(fw)]);
  69. % 三维投影
  70. hold on
  71. subplot(222);
  72. set(h3,'name','定值包络立体图','MenuBar','none','ToolBar','none')
  73. set(gcf,'InvertHardcopy','off')
  74. fw=150; % fw是作主要可变参数,控制最外层包络面的值 %%此值为最外层包络面取值
  75. fv=isosurface(x,y,z,v,fw); % 从三维体数据中提取等值面数据
  76. %isovalue 中指定的等值面值处的体数据 V 计算等值面数据。等值面连接具有指定值的点,与等高线连接仰角相同的点的方式大致相同
  77. p=patch(fv); % 创建一个或多个填充多边形
  78. set(p,'facecolor','b','edgecolor','none');
  79. patch(isocaps(x,y,z,v, fw), 'FaceColor', 'interp', 'EdgeColor', 'none');% isocaps 计算等值面端帽几何图
  80. % colorbar
  81. % colormap('jet')
  82. box on
  83. daspect([1,1,1]) % 坐标轴尺寸变化为1:1:1
  84. view(90,0); %在yoz面上的投影
  85. set(gca,'zdir','reverse','color',[0.2,0.2,0.2]);
  86. camlight % 在照相机坐标系中创建或移动光源对象
  87. camproj perspective % 设置或查询投影类型
  88. lighting phong % 指定光照算法
  89. axis equal
  90. grid on
  91. % title(['最外层表面的值为: ' , num2str(fw)]);
  92. hold on
  93. subplot(223);
  94. set(h3,'name','定值包络立体图','MenuBar','none','ToolBar','none')
  95. set(gcf,'InvertHardcopy','off')
  96. fw=150; % fw是作主要可变参数,控制最外层包络面的值 %%此值为最外层包络面取值
  97. fv=isosurface(x,y,z,v,fw); % 从三维体数据中提取等值面数据
  98. %isovalue 中指定的等值面值处的体数据 V 计算等值面数据。等值面连接具有指定值的点,与等高线连接仰角相同的点的方式大致相同
  99. p=patch(fv); % 创建一个或多个填充多边形
  100. set(p,'facecolor','b','edgecolor','none');
  101. patch(isocaps(x,y,z,v, fw), 'FaceColor', 'interp', 'EdgeColor', 'none');% isocaps 计算等值面端帽几何图
  102. ....................................

 

D202

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/213419
推荐阅读
相关标签
  

闽ICP备14008679号