3

虽然我使用了很多 R,但我刚刚开始了一个图像分析项目并且我正在使用该EBImage包。我需要从圆形/椭圆形图像中收集大量数据。内置函数computeFeatures给出最大和最小半径。但我需要它计算的所有半径。

这是代码。我已经阅读了图像,阈值和填充。

actual.image = readImage("xxxx")
image = actual.image[,2070:4000]
image1 = thresh(image)
image1 = fillHull(image1)

由于图像中有几个对象,我使用以下标记

  image1 = bwlabel(image1)

我使用内置函数生成了特征

  features = data.frame(computeFeatures(image1,image))

现在,computeFeatures给出最大半径和最小半径。我需要它为我的分析计算的所有对象的所有半径。至少如果我得到所有对象的边界坐标,我可以通过其他代码计算半径。

我知道图像存储为矩阵,可以想出一种复杂的方法来找到边界,然后计算半径。但是,想知道是否有更优雅的方法?

4

1 回答 1

1

您可以尝试提取每个对象 + 一些填充,并绘制每个对象的 x 和 y 轴强度分布。强度分布只是可以使用R计算rowSums的行/列的总和colSums

然后,您可以通过将每个强度分布分成两半并计算最接近的最小值来找到它的下降位置。

也许一个例子可以帮助澄清事情: 在此处输入图像描述

希望这是有道理的

于 2013-05-01T16:54:33.690 回答