R EBImage功能名称
有人能解释一下在R EBImage功能名称,r,image-processing,bioconductor,R,Image Processing,Bioconductor,有人能解释一下在computeFeatures中计算不同功能所使用的是什么吗 我得到了应用在中的命名约定?计算功能。我不理解.0.,.a.和.Ba.标签 例如: > library(EBImage) > y = readImage(system.file("images", "nuclei.tif", package="EBImage"))[,,1] > x = thresh(y, 10, 10, 0.05) > x = opening(x, makeBrush(5, s
computeFeatures
中计算不同功能所使用的是什么吗
我得到了应用在中的命名约定?计算功能
。我不理解.0.
,.a.
和.Ba.
标签
例如:
> library(EBImage)
> y = readImage(system.file("images", "nuclei.tif", package="EBImage"))[,,1]
> x = thresh(y, 10, 10, 0.05)
> x = opening(x, makeBrush(5, shape='disc'))
> x = bwlabel(x)
> ft = computeFeatures(x, y, xname="nucleus")
> colnames(ft)
[1] "nucleus.0.m.cx" "nucleus.0.m.cy"
[3] "nucleus.0.m.majoraxis" "nucleus.0.m.eccentricity"
<snip>
[11] "nucleus.0.s.radius.max" "nucleus.a.b.mean"
[13] "nucleus.a.b.sd" "nucleus.a.b.mad"
<snip>
[51] "nucleus.Ba.b.mean" "nucleus.Ba.b.sd"
[53] "nucleus.Ba.b.mad" "nucleus.Ba.b.q001"
[55] "nucleus.Ba.b.q005" "nucleus.Ba.b.q05"
<snip>
您是否看到了此处的文档:
这似乎是讨论该软件包的最深入的文档。你有没有试过直接联系作者格雷戈雷·保罗?我相信如果你用谷歌搜索他,你一定能找到他。作为免责声明,我对你的领域一无所知,但通过查看函数,我可以很好地猜测到底发生了什么。我建议您使用
debugonce(computeFeatures)
,然后运行ft=computeFeatures(x,y,xname=“nucleus”)
。您可以单步执行每一行代码(键入Q
)以退出,并查看发生了什么
正如您所注意到的,文档说明:
要素命名为x.y.f,其中x为对象层,y为
参考图像层和f要素名称
在您的示例中,computeFeatures
为三个参考层(a
、aB
、和0
)生成了值。文档中提到,如果您不命名参考层,它们只会被赋予字母表中的字母,因此在您的例子中,您有一个参考层,它被称为a
。我相信0
意味着它不使用参考层
从源代码来看,似乎每个层i都会创建一个B_i层。它似乎在每一层上都通过了一个硬编码的过滤器,正如您在这段代码中看到的,可以在expandRef
函数中找到(注释是我的):
我不知道你到底想在这里做什么,但是你可以直观地看到这个过滤器在做什么。这是您的x
(您只需运行display(x)
即可查看它):
这是您的参考资料(y
):
以下是硬编码过滤器的外观:
这就是硬编码过滤器对y
的作用:
因此,总而言之:
0
的所有内容都与无引用进行比较,a
的所有内容都直接与y
作为引用进行比较,aB
的所有内容都与过滤后的y
进行比较,我怀疑硬编码过滤器所做的是应用15像素,如果需要进行边缘检测,这将非常有用。我知道该代码试图做什么,但我正在寻找更多关于使用哪些数据来计算与命名约定相关的特征的确切细节。这里只有一个引用对象(y
);多个引用对象需要矩阵列表(对于给定示例,在reframes
中使用多个值会引发错误)。如果我使用类似于refnames=“prot”
,约定将变为“.prot.
”和“.Bprot.
”而不是“.a.
”和“.Ba
”,后者定义得稍微多一些,但不解释计算。尽管只输入一个引用对象(y
),它为您输入的每个参考对象创建两个参考对象,一个是您输入的,另一个是高斯模糊。正如我提到的,它总是在高斯模糊的前面加上“B”。上面的代码中也给出了它使用的精确模糊。最后,它添加了第三个引用,名为0
,它不使用引用;不要提及computeFeatures
。在打扰包维护人员之前,我想在这里问这个问题(我希望有人为我的包做这件事)。谢谢,麦克斯
> sessionInfo()
R Under development (unstable) (2014-08-23 r66461)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] EBImage_4.7.16
loaded via a namespace (and not attached):
[1] abind_1.4-0 BiocGenerics_0.11.4 grid_3.2.0
[4] jpeg_0.1-8 lattice_0.20-29 locfit_1.5-9.1
[7] parallel_3.2.0 png_0.1-7 tiff_0.1-5
[10] tools_3.2.0
# Hard code a filter
blob = gblob(x0 = 15, n = 49, alpha = 0.8, beta = 1.2)
# Filter using the fast 2D FFT convolution product.
bref = lapply(ref, function(r) filter2(r, blob)/2)
# Name it "B" and then the layer name
names(bref) = paste("B", names(ref), sep = "")