1

给定 x,y,z 坐标作为输入,我需要一个函数来从 X.volume 对象获取体素(3d 像素)的值。这是为了使用 labelmap 作为 atlas 函数的参考。有没有办法做到这一点?

非常感谢,

爱德华

4

2 回答 2

3

目前没有,尽管 XTK 开发人员正在创建类似于从屏幕坐标中查找世界坐标中解释的内容,尽管我相信那里正在做的是 Unproject 函数和 Ray/Triangle 相交测试。射线/三角形相交测试只是将一条射线从您的屏幕投射到 3d 世界中并返回第一个相交的三角形坐标,但当然您需要找到体素。您可以尝试创建一个 Unproject 函数和类似于 Ray/Triangle 相交的东西,但要找到最接近的相交体素而不是三角形。此处提供有关 Unproject 功能的帮助http://myweb.lmu.edu/dondi/share/cg/unproject-explained.pdf,但请记住,该链接解释了来自 OpenGL 的 GluUnproject,但仍然解释了我们需要做什么,我们只是为 WebGL 制作 GluUnproject 的替代版本。如果您对 XTK 做出贡献,您可能会找到任何解决方案,我们将不胜感激。或者您可以等待可能来自查找 3d 坐标的相关问题的 Unproject 功能。

于 2012-07-30T20:33:13.207 回答
0

你的 (x,y,z) 是什么?它们是世界基坐标还是体积基坐标?在这两种情况下,都可以计算出解决方案(在第一种情况下会稍微复杂一些),但我认为这需要对源代码进行一些更改。

您想在源代码中编写一些代码并参与吗?对于像我们这样的 xtk 用户来说,这将是很棒的!您只需浏览卷的层次结构并执行一些操作:

  • 如果 (x,y,z) 是世界坐标系中的坐标:复杂。必须做一些测试:-​​)
  • 选择一个工作方向(1 个卷可以有 3 个方向的切片),例如第一个方向的 slicesX
  • 使用体积的中心 X 坐标、体积 X 间距和拾取点的 X 坐标在 slicesX 中找到好的切片
  • 使用体积的中心 (y,z)、体积 Y 和 Z 间距以及拾取点的 Y 和 Z 坐标,获得所选切片纹理贴图上的 (x',y') 坐标
  • 使用所选切片的纹理大小获取 (x'',y'') 切片纹理图像上的坐标
  • 读取纹理的 (x'',y'') 点

很抱歉,我这周没有时间再看下去,但也许以后再说吧。

于 2012-07-31T10:49:31.070 回答