【问题标题】:Exporting 3D image from Matlab to u3D or any other 3D format将 3D 图像从 Matlab 导出为 u3D 或任何其他 3D 格式
【发布时间】:2015-01-21 11:41:14
【问题描述】:

我有一个关于将 Matlab 制作的 3D 图像导出为任何其他 3D 格式(u3D、collada、Fbx)的问题。 我有一堆图像(ct 图像),我在 Matlab 中使用了等值面法来获得 3D 体绘制。 代码如下:

p_bone=patch(isosurface(volume_gabbia,0));%create isosurface patch
isonormals(volume_gabbia,p_bone)%compute and set normals
set(p_bone,'FaceColor','m','EdgeColor','none')%set surface props
daspect([1 1 1])                             
view(3), axis vis3d tight, box on, grid on    
camproj perspective                           
camlight, lighting phong, alpha(.2) 

volume_gabbia 是一堆仅包含胸腔的图像。 结果是一个图像 (.fig) 卷,我可以旋转、移动、删除...

现在我需要将这个 3D 体积导出为 3D 文件(u3D r 类似)。 我尝试使用 Fig2u3d 文件 (http://it.mathworks.com/matlabcentral/fileexchange/37640-export-figure-to-3d-interactive-pdf) 但出现以下错误:

fig2u3d 未找到任何表面。 预处理补丁 No.1 未定义函数 'ddisp' 用于类型为“char”的输入参数。

u3d_pre_patch>single_patch_preprocessor 中的错误(第 115 行) ddisp('Patch: Fixing face color')

u3d_pre_patch 中的错误(第 70 行) [v, f, fvx, r] = single_patch_preprocessor(h);

fig2u3d 中的错误(第 195 行)[patch_vertices,patch_faces, patch_facevertexcdata, patch_renderers] = u3d_pre_patch(ax);

有人知道如何从 Matlab 导出 3D 图像吗?

【问题讨论】:

  • 尝试导出为 .stl(查看文件交换),它得到了更好的支持。然后用 meshlab 转换。
  • 非常感谢您的帮助。
  • 我做到了,而且效果很好。非常感谢您的帮助
  • @Thomas 您可以将其发布为我猜的答案:)

标签: matlab 3d export


【解决方案1】:

尝试导出为 .stl(查看文件交换),它得到了更好的支持。然后用meshlab转成u3d。

【讨论】:

  • 好吧,抱歉最后一个问题。现在,在您的帮助下,我成功导出了我需要的三个等值面。它们位于三个不同的 stl 文件中。现在在 Meshlab 中,我将三个网格全部加载在一起,我只想将它们全部导出到一个 collada 文件中,但是当我这样做时,Meshlab 让我为每个网格创建一个 collada 文件,而不是一个包含三个网格的 collada 文件。你能帮我么?你知道如何解决这个问题吗?非常非常感谢
  • 打开图层面板(Ctrl+L)。右键单击其中一个图层并选择“Flatten Visible Layers” - 这会合并所有网格部分。然后“导出为”...
【解决方案2】:

unintendedly introduced在维护期间调用了函数ddisp。 函数ddispdisp 的本地便利包装器,用于全局过滤调试输出(matlab 中没有任何适当的logging 基础设施)。

在提交 e15999 时已修复。感谢您的报告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 2019-03-16
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多