在3D图像中找到可重叠球体的半径r


9

我目前的问题:

  • 我有一个输入3D二值图像(一个只有0和1的3D矩阵),它由半径为r的球体的随机数组成。
  • 我们不知道图像中有多少个球体。
  • 所有球体都具有相同的半径r,但我们不知道半径r。
  • 球体遍布图像中的各个位置,并且可以彼此重叠。
  • 示例图像如下。

我的要求:

  • 半径r是多少?

目前,我只是将图像变平以摆脱z轴并执行边缘检测,而我正在尝试使用以下方法进行霍夫变换:http : //rsbweb.nih.gov/ij/plugins/hough-circles.html

但是,通过霍夫变换,我看到必须指定变量最小半径,最大半径和圆数。我在下面尝试了一些尝试:

已知半径

未知半径

给定正确的参数,霍夫变换可以很好地检测到圆。但是在实际应用中,我不知道有多少个球体,使程序尝试猜测最小和最大半径似乎是不可行的。还有其他方法可以做到这一点吗?

交叉链接:https : //math.stackexchange.com/questions/118815/finding-radius-r-of-the-overlappable-spheres-in-3d-image


编辑您的问题,并添加输入图像格式的描述。

输入图像的格式是二进制3D图像。
2012年

除非您打算说这些球体不能相互重叠,否则您的问题似乎不受限制。
ObscureRobot 2012年

不,球体可以相互重叠。在最简单的情况下,根本没有球体重叠,但这并不总是正确的。
2012年

Answers:


9

与霍夫变换相比,一种更简单的解决方案以及更高的计算效率是使用距离变换:

  • 找到球体的表面(即,值为1且至少有一个相邻的0像素的像素);
  • 相对于球体表面计算距离变换,但仅将计算限制在球体内部的像素上。输出将是一个距离图;
  • 半径将恰好是您的距离图中的最大值。

与霍夫变换相比,此解决方案的另一个优点是它为半径提供了更精确的值。


但是,如果两个球体重叠,最大的难道不是从一个球体的另一侧到另一个球体的另一侧的更长距离吗?
endlith 2012年

1
@endolith否,因为在这种情况下,给定像素(体素)的距离变换值对应于到最近球面的距离。
Alceu Costa

3

通常,霍夫变换不需要猜测要查找的圆的半径或有多少个。也许您被您的消息来源误导了。转换在其最一般的形式上可能在计算上昂贵。您拥有的任何先前信息都可以使算法的执行更快,更准确。

根据您的输入图像,我希望霍夫变换能够以合理的精度找到球体的半径;图像中有很多点代表半径相同的圆的圆周上的点。

考虑到这个半径,您似乎已经解决了其余问题,所以我不再写了。

我看到Wikipedia对Hough变换的解释还表明,只要可以对这些对象进行参数化即可确定其是否可以用于3D图像中的3D对象。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.