0

我需要在一堆图像上保存和重新加载数千个 ROI 多边形,实际上是一部 30 多分钟每秒 30 帧的电影,所以至少有 54,000 帧。堆栈中的单个图像(帧)上可以有多个 ROI,每个 ROI 的大小和顶点数不同。ROI 多边形会随着时间的推移跟踪形状的边缘。

电影堆栈通常太大而无法一次保存在内存中。我对它进行后期处理,逐帧搅拌以跟踪我的形状。我可以一次一帧地将 ROI 对象保存到二进制文件中,但这会生成 54,000 多个文件以保存在一起。或者,如果我尝试分配一个容器对象来保存所有 54,000 多个 ROI 帧,然后将其保存到一个文件中,我很快就会耗尽资源。

我想将所有 ROI 保存到一个可以随机访问和修改的文件中。如果我想要第 100 帧上的第三个 ROI 多边形,我希望能够立即加载它。我还希望能够在保存的文件中插入和删除 ROI。

执行此操作的最佳文件格式是什么?是否有可接受的格式或应用程序?ImageJ 有一个原生的 ROI 格式,但我不太了解它。我的应用程序现在在 IDL 中编程。IDL 有自己的 ROI 类,但就像我说的,我不想将它们全部写到单独的文件中,而且我没有资源将它们全部组合到一个文件中。XML?谢谢。

4

2 回答 2

0

ImageJ ROI 格式在此处记录。我会考虑使用关系数据库进行存储和随机访问。H2 数据库是我最喜欢的,但也有很多替代品

于 2010-03-06T01:49:58.207 回答
0

不久前我必须做一些非常相似的事情(多边形、IDL、快速访问)。我的决定是将我所有的 ROI 放入一个文件中,然后再创建一个包含每个多边形开始的偏移量的文件。

基本上,文件 #1 将包含每个 ROI 的所有顶点的列表,文件 #2 包含整数列表,指定多边形开始的字节偏移量,即文件 #2 中的第 i 个整数是文件 # 中的位置1 polygon_i 所在的位置。

我已经用它来快速访问近 500 万个多边形,总共约 40 亿个顶点。

于 2010-03-08T18:23:56.927 回答