通过 Bio7 从 ImageJ 发送到 R 的测试图像的列号不相等

Unequal column numbers of test images sent to R from ImageJ via Bio7

提问人:Hack-R 提问时间:4/9/2016 最后编辑:Hack-R 更新时间:4/10/2016 访问量:118

问:

今天我发现了Bio7的奇迹。这个类似 eclipse 的 IDE 结合了 R 和 ImageJ,他们的网站上有一个关于如何使用这种组合进行图像特征提取和 ML 的教程。

enter image description here

我已经完成了本教程,但我没有尝试对单个图像的某些部分进行分类,而是处理> 100,000 张图像。

我发现我可以获得用于测试和控制的合格数据,但前提是我没有在测试数据中选择 ROI。虽然数据对象 - 一旦传递给 R 并使用适当指定的语句进行转换,我不得不怀疑我是否没有因为不指示 ROI 而在分类方面损失了很多价值。as.data.frame(matrix(unlist()))

在 ROI 管理器中指定 ROI 后,如何获取每个图像(或图像序列的每个帧/切片)具有 1 个元素(即矩阵列表中的 1 个矩阵或其他)的 R 对象?

R 处理图像 J BIO7

评论


答:

0赞 Marcel 4/10/2016 #1

问题在于“像素”操作仅从一个选择中传输像素数据。如果您不想使用 ImageJ 的 ROI 管理器,则此操作是额外的可用。

例如,如果导入图像序列,则可以使用“Pixel RM Stack”操作以最佳数据效率数据类型从 ROI 管理器传输一个 ROI。

文档:

http://bio7.org/manual/Main.html#toc-Subsection-4.4.3

http://bio7.org/manual/Main.html#toc-Subsubsection-4.4.3.1

此外,您还可以使用 Java API 传输图像(以堆栈形式导入图像序列),然后逐个分类和存储图像,例如使用调用 Rserve API 的 Groovy 或 Jython 脚本。

请参阅此处的示例:

http://bio7.622846.n4.nabble.com/Use-ProcessAviStack-Java-tp4640289p4640290.html

建议将映像序列作为虚拟堆栈(磁盘驻留映像)导入以节省 RAM 内存,请参阅:

https://imagej.nih.gov/ij/docs/guide/146-8.html

0赞 Marcel 4/10/2016 #2

另请参阅YouTube:

https://www.youtube.com/watch?v=CyGB8uUjbWk&list=PLzCgXMp4TBsVKSRHZ8Q9y_3ZSlGl2kcrp&index=3

建议“选择”按钮仅传输选择坐标,而不传输像素数据。

看:

https://www.youtube.com/watch?v=P2NflfBB2Tg

评论

0赞 Hack-R 4/10/2016
我的错误,我不是故意指定那个按钮。我会更新问题。
0赞 Marcel 4/10/2016
仅供记录。如果使用“IJ Raster Stack”操作将堆栈作为列表传输(在选项对话框中按否),则图像将按以下模式传输:1.作为矩阵对象列表(如果选择了“Double”、“Integer”、“Byte”传输类型)。2. 作为 3 列 R、G、B 整数矩阵的列表(如果选择了“RGB 字节”传输类型)
0赞 Marcel 4/10/2016
如果您使用“Pixel RM Stack”操作,请在选择整个图像的情况下创建一个 ROI(例如,按“a”键选择所有图像,按“t”键将选择添加到 ROI 管理器中 - 如果不起作用,请使用菜单)。您将获得一个矩阵,其中包含每个 ROI 选择的所有堆栈图像作为一列。在您的情况下,您只需要整个图像选择 ROI,这会产生一个矩阵,其中包含堆栈的所有加载图像。