Python 转换stl 2 numpy,体积数据

Python 转换stl 2 numpy,体积数据,python,arrays,numpy,stl,Python,Arrays,Numpy,Stl,有没有办法将stl文件转换成numpy数组? 使用x*y*z数据点解析的numpy数组应包含几何体“内部”或“外部”意义上的体积信息,例如0或1 令我惊讶的是,尽管numpy2stl似乎很受欢迎,但我还没有在这方面找到任何东西 该问题是一个复杂的多孔介质几何形状,因此凸包变换也不起作用 import numpy import stl from stl import mesh stl.stl.MAX_COUNT = 1e10 your_mesh = stl.mesh.Mesh.from_file(

有没有办法将stl文件转换成numpy数组? 使用
x*y*z
数据点解析的numpy数组应包含几何体“内部”或“外部”意义上的体积信息,例如0或1

令我惊讶的是,尽管numpy2stl似乎很受欢迎,但我还没有在这方面找到任何东西

该问题是一个复杂的多孔介质几何形状,因此凸包变换也不起作用

import numpy
import stl
from stl import mesh
stl.stl.MAX_COUNT = 1e10
your_mesh = stl.mesh.Mesh.from_file('Data.stl')
print your_mesh.data
似乎只能导出三角形

此外,即使这样,通常也会产生
MemoryError
消息;但是numpy stl(通常)用于将数据点加载到numpy中

如果每个点位于几何体内部或外部,是否有方法将stl数据转换为包含信息的体积数据? 从技术上讲,生成的3D数组可以是二进制数据类型,但这不是必需的。 过度复杂
对于商业软件来说,这种转换似乎微不足道,但它不是python或免费的。从零开始实现光线投射算法对于文件类型转换来说似乎过于复杂。

我确实相信您要做的是对体积进行体素化。您可以使用
trimesh
软件包在

还可以使用以下方法检查点列表是否在卷内:

mesh.contains(points)

在[4]中,trimesh没有矩阵atribute,你可以从体素网格中得到它

mat = mesh.matrix
固定的


你试过numpy stl吗@据我所知,rennomarcus正在用numpy stl加载stl文件。numpy stl如何能给我卷信息?我从来没有使用过这个库,我也没有stl文件要测试。。。这是你想要的吗?有很多例子是关于如何加载STL数据的问题,或者是关于如何确定任意卷的“内部”和“外部”的问题?@ChristophTerasa我试图改进这个问题,从文件加载数据效果相当好,确定“内部”和“外部”是一个大问题。
mat = mesh.matrix
mat = volume.matrix