Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用体素标注Matlab编写STL文件_Matlab_File_3d_Voxel - Fatal编程技术网

用体素标注Matlab编写STL文件

用体素标注Matlab编写STL文件,matlab,file,3d,voxel,Matlab,File,3d,Voxel,我在使用Matlab时遇到以下问题:我有一个二进制卷和一个包含体素维度的1x3向量,我想写一个包含体素维度的STL文件。从二值图像中,我使用isosurface命令:查找面和顶点,然后使用stlwrite函数写入stl文件:。问题是,在此工作流中,我无法添加体素维度的信息,因为等值面函数将体素视为一个向量。你知道我如何从包含体素尺寸信息的二值图像中编写STL文件吗 尺寸向量是x、y和z轴的,对吗?如果在保存模型之前或之后尝试缩放该模型会怎么样。您可以使用S=makehgtform('scale'

我在使用Matlab时遇到以下问题:我有一个二进制卷和一个包含体素维度的1x3向量,我想写一个包含体素维度的STL文件。从二值图像中,我使用isosurface命令:查找面和顶点,然后使用stlwrite函数写入stl文件:。问题是,在此工作流中,我无法添加体素维度的信息,因为等值面函数将体素视为一个向量。你知道我如何从包含体素尺寸信息的二值图像中编写STL文件吗

尺寸向量是x、y和z轴的,对吗?如果在保存模型之前或之后尝试缩放该模型会怎么样。您可以使用
S=makehgtform('scale',[sx,sy,sz])
创建矩阵,然后
newVertices=S*oldVertices
,面索引应该保持不变。谢谢您的回答。是的,尺寸向量用于x、y和z轴。我已经尝试过您的解决方案,并将结果作为4x4矩阵。“等值面”命令可创建面的Nx3矩阵和顶点的Mx3矩阵。如果我将顶点的Mx3矩阵和4x4 S矩阵相乘,Matlab会给我一个错误:内部矩阵的尺寸必须一致。我如何解决这个问题?是的,那是因为你必须转换到齐次坐标(意思是
[x,y,z]
变成
[x,y,z,1]
)。但是,如果只进行缩放,则可以省略S的最后一行和最后一列并将其相乘(添加的1用于平移)。因此,要修复我之前的代码,它将是
newVertices=S(1:3,1:3)*oldVertices
好的,非常感谢!它起作用了!