gpt4 book ai didi

3d - 无法理解 .inr 文件格式

转载 作者:行者123 更新时间:2023-12-05 03:12:09 24 4
gpt4 key购买 nike

我正在尝试为 cgal 库创建一个灰度 .inr 图像,但我在文件格式方面遇到了问题。
This seems to be the best description of the format ,但看起来并不完整,只谈表头,不谈数据本身。
This seems to have a bit more information about the format , 但不幸的是它是法语的。

我想做的是将一个对象表示为一个填充 bool 值的 3D 数组,因此如果位置在对象内部,则该位置的值为 1,如果在对象外部,则该位置的值为 0。

如果我理解正确的话,基于第二个链接,我现在所做的是在标题后将每个 z 平面写在一行上,下一个 z 平面在新行上。
因此,我在代表第一行的行上有列的 x 值,然后在同一行上有第二行的 x 值,如此 y 次直到最后一行。然后我为新的 z 平面跳线并以相同的方式写入数据。

I have created the following .inr file ,但是当我尝试对其进行网格化时,结果是一个立方体而不是圆柱体,就好像 cgal(我使用 mesh_optimization_lloyd_example)不关心 bool 值并且只是对整个体积进行网格化。

我尝试查看示例提供的 .inr 文件(如 skull_2.9.inr),但是虽然标题非常清晰,但没有文本编辑器可以读取图像数据,这让我觉得可能还有更多内容而不仅仅是写 0 或 1。

.inr 有什么问题吗?还是我用错了 cgal?

最佳答案

我终于设法让它工作了,如果它能帮助别人,这是需要的。

Header:必须是256字节的倍数,包括header结束后的回车,这里举例说明。

#INRIMAGE-4#{ // format type
XDIM=150 // x dimension
YDIM=200 // y dimension
ZDIM=100 // z dimension
VDIM=1 // dimension of the data, here 1 for scalar or 3 for thing like RGB values
VX=5 // voxel size in x
VY=5 // voxel size in y
VZ=5 // voxel size in z
// a higher voxel size results in a more precise 3D mesh
TYPE=unsigned fixed // type of data written, can float, signed fixed or unsigned fixed, unclear if it makes a difference in my case
SCALE=2**0 // not used by most programs apparently
PIXSIZE=8 bits // size of a char, can be 8, 16, 32 or 64
CPU=pc // the type of cpu for little/big endianness, pc is little endian

// Fill with carriage returns until the header is a multiple of 256 bytes, including the end of the header (4 bytes including the line break)

##} // the line break is included in the header count

现在是数据本身:
尽管文档似乎暗示了什么,但其中没有换行符,一切都是连续的。数据必须以二进制而不是 ASCII 格式写入(因此在我的 C++ 示例中,这将是 static_cast(space[i][j][k])),将 char 替换为您使用的数据类型)。

最后一个怪癖,文件似乎是列优先顺序,所以如果你在 C 中有一个 3d 数组(行优先),你需要在写入它们之前转置 (x,y) 平面。

关于3d - 无法理解 .inr 文件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34906509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com