问题标签 [marching-cubes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
marching-cubes - 二维 MRI 扫描如何生成体素?
体素是在通过 3D 渲染算法获取图像后构建的,例如行进立方体吗?或者它们是通过直接 3D 图像采集获得的?
如果两者都可能:目前通常用于从 MRI 扫描中获取 3D 图像的方法是什么?
c# - 使用 Transvoxel/Marching 立方体和 3D perlin 噪声制作程序地形
我正在研究 Transvoxel 的实现,它工作正常,但我无法继续处理噪音。现在我正在使用 perlin 噪声生成一个 2d 高度图,并使用我正在设置单元格值的高度图,但我不知道如何为单元格生成值。实际上它们必须在 -127 和 128 之间,并且它们必须平滑地增加和减少,但我无法生成这些值。
编辑:
我停止使用 3d 噪声,我正在尝试用 2d 噪声做一些事情。现在,我可以对密度场进行三角测量,因为我使用行进立方体和体素大约半年了。但我唯一不知道的是,如果我生成一个 2d 高度图以具有像山脉这样的地形特征,那么我不知道我必须使用什么密度。我尝试只是简单地给所有实心-127和所有非实心127,我还尝试在给定的(x,z)处获取高度图值,然后将y添加到它,例如:(x,0,z)= 42, (x, 1, z) = 43, (x, 2, z) = 44 等等......但是这些变化会产生如下图所示的块状地形:
我应该怎么做才能使它顺利?顶点位置是具有非整数值的浮点数,因此应该不是问题。
matlab - 沿骨架化 3d 蒙版的最短路径
我有一个带有曲线(骨架化数据)的 3D 数组,需要找到这些线上两点之间的最短连接路径。
如何在 Matlab 中找到沿 3D 骨架数组的两点之间的最短路径?
有 几个 人在这里和mathworks 论坛上提出了类似 的问题。但大多数答案都指向这篇关于寻找最短路径的博客文章,它不会沿着骨架搜索。如果我试图沿着骨架强制它,它也会返回不在两点之间但离两点更远的路径。此外,人们建议的一些 matlab 函数只能处理 2D 数据(例如,可用于规避非骨架体素)。 bwdistgeodesic
到目前为止,这些结果很好:
右图中的白线显示骨架,蓝线显示种子。但是,如果我尝试应用距离变换,我找不到最短路径:
第一个发现几乎再次发现了整个骨架,第二个看起来像假的。区域最小值肯定不适合找到路径,但不确定还有什么。此外,我的距离计算没有考虑骨架,我试图在第二条路径中规避它,但也没有很好地工作。
我应该怎么做?
刚刚发现了一个叫做“快速行进”的东西,也许这会起作用。现在调查它。
python - 在 VTK 中渲染透明对象的问题
使用 python VTK lib 渲染透明对象时,会出现奇怪的图像显示效果。在某些时候,当我们旋转物体时,物体的透明度会发生一些变化。它们从前景中消失。有时会发生有时不会。这极大地阻碍了视口中的导航。也许这与法线有关。有可能解决这个问题吗?代码:
python - 在 python 中从 3d 数组创建一个 .obj 文件
我的目标是使用 python 从漂亮的 (.nii) 格式获取 .obj 文件,目的是在 Unity 上打开它。我知道“scikit-image”包有一个名为“measure”的模块,它实现了 Marching cube 算法。我将行进立方体算法应用于我的数据,并获得了我期望的结果:
然后我可以绘制数据:
我一直在寻找将数据(顶点、面法线、值)保存为 .obj 的函数,但我还没有找到。因此,我决定自己建造它。
但是当我将数据导入统一时,我得到了以下结果:
所以我的问题如下:
- 我在 .obj 制作过程中做错了什么?
- 是否有一个模块或功能可以更好地做到这一点?
- 有可能做我想做的事吗?
谢谢你。
更多示例:
Python:
统一:
python - 使用插值伪影寻找薄体素结构的表面
我有一个表示为体素化图像的薄结构。我正在使用来自 scikit-image 的行进立方体,但我注意到它不能很好地处理薄结构。
相同结构的示例移动了半个体素:
所以第二个失败的原因是没有高于的值level
。但是,知道我的结构是二进制结构(不存在中间值),我想知道是否可以通过以下方式补偿这些插值伪影
- 使用不同的行进立方体算法?
- 使用分辨率增加?
c++ - 在VTK下保存Mesh文件
我正在尝试从 3d 体积生成网格。我在VTK上处理,使用Marching Cube(vtkMarchingCubes.h);但我仍然找不到如何将结果视图保存为 vtk 文件!
任何想法
我感谢您的帮助。
three.js - 带有threejs和marchingcubes的渐变多色元球
我正在研究如何实现与这项工作类似的东西:https ://vimeo.com/9121195 。但是通过给定颜色数组中的每个元球显式地分配颜色。据我所知,在这个例子中这完全是从着色器方面完成的,但我想知道这是否不能用 Threejs 和 marchingcubes 来实现。
通过创建一个新的THREE.ShaderMaterial
,我假设我可以将每个元球的位置传递给着色器,然后评估每个顶点与给定位置的距离,最终为每个像素分配颜色。
只是为了简化问题,我从两个移动的元球开始。
从threejs:
}
这是我的着色器:
这是一个示例结果:
这里的问题是,显然距离没有正确计算,并且我尝试使用的两种颜色之间的过渡mixScale
也不起作用。任何想法?
javascript - Quadrics 的行进立方体 - Three.js
我尝试使用three.js 的Marching Cubes 库实现一个显示不同类型的空间二次曲线的小程序,以呈现隐式表面。虽然出现的形状不正确,我想我没有THREE.MarchingCubes
根据需要实现属性。小程序的核心有以下代码
但完整的代码可以在这里检查。我想field
属性必须用函数的值填充,但也许这不是正确的方法。例如,当a11
变大时会出现奇怪的效果,这会扩大椭圆体而不是缩小它;“行进立方体网格”似乎也在扩展,这有点有趣。
许多其他配置与预期结果不匹配。哪个是正确的使用方法THREE.MarchingCubes
?