-1

我有一堆椭圆柱的图像。在圆柱体内有一些重要的“点”/种子。我已经计算了它们与最近邻居之间的欧几里得距离。我的下一步是制作一个 voronoi 图并计算每个 voronoi 单元的体积。

我需要定义该椭圆柱的空​​间/限制,以便在计算 voronoi 图时加以考虑。

有任何想法吗?

提前致谢,

尤塔姆

4

2 回答 2

0

首先让我们从一些上下文猜测开始:

Matlab mupad 用于符号计算。我不明白为什么你会认为你需要这个来绘制任何东西?

我不知道你为什么需要画任何东西,但我认为它是为了可视化完成的计算。就像横截面面积,使用特定的平面方程,或横截面周长,给定一个平面方程。或者可能是射线的碰撞点,或者突出显示您正在计算的表面?

在这些情况下,数值渲染就足够了,您可以简单地使用内置的绘图功能......

我推荐表面(绘制网格) http://nl.mathworks.com/help/matlab/ref/surface.html

但实际上,这里的前一个问题显示了如何手动绘制 3d 圆柱体: matlab 中填充顶部和底部的圆柱体

请注意,圆柱体的方程直接在函数中表示,您可以对其进行修改!


阅读了您的评论后,您提出的问题与您想做什么无关。如果您将问题更新为有关限制图像上的 voronoi 计算的问题,请忽略此答案

于 2015-05-12T10:25:28.743 回答
0

这将有多难取决于您是能够单独操作切片还是需要对整个卷进行操作。

在前一种情况下,如果您的圆柱体与任何轴对齐,则会容易得多。然后,您可以使用横截面椭圆的方程来定义横向平面中的边界,您可以将其应用于所有切片。这将使您可以在平面内执行操作,例如测试点的内部/外部,屏蔽图像。除了排除外部点之外,我无法猜测这可能如何与 Voronoi 图相互作用,但听起来它代表的是椭圆/圆柱体,这是主要问题。

如果你的圆柱体没有轴向对齐,那么它会更难,但原则上是相同的过程:将椭圆投影到图像平面上,并根据圆柱体的纵向矢量与图像法线轴之间的角度在每个切片中偏移它。

如果您打算对体积进行操作,那么您将按照不同的顺序执行相同的操作(这取决于您使用它的目的):一旦您计算了给定图像和圆柱体之间的交集,那么您可以先对每个切片应用掩码或边界,然后绘制 Voronoi 图。

主要的是避免必须将圆柱体表示为 3d 对象:即使没有符号数学也是可能的,但它很复杂,并且由于您的数据集自然地按切片排序,因此对圆柱体进行切片也是最一致的,椭圆是比圆柱体的定义要紧凑得多。

对于所有这些选项,第一步是用数学方法定义问题。根据您对 matlab 的熟悉程度,您可以将其转换为伪代码,最后转换为 matlab,或者跳过伪代码。

于 2015-05-12T10:45:23.680 回答