虽然我使用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
给出最大半径和最小半径。我需要它为我的分析计算的所有对象的所有半径。至少如果我得到所有对象边界的坐标,我可以通过其他一些代码来计算半径。
我知道图像存储为矩阵,并且可以找到一种复杂的方法来查找边界然后计算半径。但是,想知道是否有更优雅的方法?
答案 0 :(得分:1)
您可以尝试提取每个对象+一些填充,并绘制每个对象的x和y轴强度配置文件。强度分布只是行/列的总和,可以使用R中的rowSums
和colSums
来计算
然后你可以通过将每个强度分布分成两半并计算最接近的最小值来找到它的位置。
也许一个例子可以帮助澄清事情:
希望这是有道理的