我们很高兴地宣布ImgLib2核心库的第一个稳定发布版本!
此版本是最近10月13日至17日周在麦迪逊举行的第LOCIhackathon会议的核心目标。
ImgLib2 核心库现在为 available on Maven Central,所有 ImgLib2 项目的 source code 为 accessible on GitHub。
与 SciJava 和 ImageJ2 项目一样,ImgLib2 版本现在遵循 semantic versioning 方案。此外,项目和git存储库结构也发生了变化。imglib 存储库的主要为 split into multiple repositories,其命名与接口名称和 java 包邻居一致。现在使用非中继版本来连接项目,以实现reproducible builds。
相关项目结构的更多技术细节,请参见第§§0§§§页。
在发布测试之前,我们对代码进行了最后一刻的几项更改:
- 所有
@Deprecated方法和类已被删除。 - 所有元数据处理(之前的
imglib2-meta子项目)都被移至imglib2-roi中。从ImgLib2核心,类AnnotatedSpace、AbstractAnnotatedSpace和Axis被移至imglib2-algorithm。 - 当前的 ROI 形式表示被认为不够稳定,无法在版本中包含。
net.imglib2.roi和net.imglib2.labeling已经移至新的imagej-common子项目,该子项目目前仍处于测试阶段。 net.imglib2.multithreading包已移至imagej-common并已弃用。- 我们合并了 Albert Cardona 和 Stephan Preibisch 关于“分数”类型的作品。 ImgLib2
NativeTypes将像素映射到基元阵列中,其中映射通常是稀疏的。例如,UnsignedByteType像素映射到基元byte[]一个字节。对于小数据类型,这个映射可能是非整数的,例如Unsigned12BitType将像素映射到long[]中,其中每个像素占用12/64长。 - 改装的通用参数从
Projector<A,B>接口中删除,现在预算下Projector。投影仪的实现也相应地得到了修复。 - 一些框架被重命名或移动到更合适的位置:
Extended[Real]RandomAccessibleIntervalmoved to thenet.imglib2.viewpackage.RandomAccessibleOnRealRandomAccessiblemoved to thenet.imglib2.viewpackage.Binningmoved to thenet.imglib2.utilpackage.- The contents of package
net.imglib2.collection(KDTreeetc.) moved to thenet.imglib2package. net.imglib2.concatenate.Utilwas renamed tonet.imglib2.concatenate.ConcatenateUtils.Boundedmoved to thenet.imglib2.outofboundspackage.- The class
NearestNeighborInterpolatorfrom packagenet.imglib2.interpolation.neighborsearchwas renamed toNearestNeighborSearchInterpolator(to avoid confusion with thenet.imglib2.interpolation.randomaccess.NearestNeighborInterpolatorclass). - The
Pairinterface moved to thenet.imglib2.utilpackage.
net.imglib2.util.Util类已清理:- Methods
getTypeFromRandomAccess()andgetTypeFromRealRandomAccess()were removed. We considered them too dangerous because theRandomAccessmay be pointing to invalid position. - Unused methods
setCoordinateRecursive()andgetRecursiveCoordinates()were removed. - Some variants of
computeLength()andcomputeDistance()were removed. Use methodsdistance()andlength()fromnet.imglib2.util.LinAlgHelpersinstead. - Methods
computeMedian(),computeAverage(), etc. were renamed tomedian(),average(), etc.
- Methods
- 这些未使用的类已被删除:
IterableIntervalSubsetTTripleRealPositionableFloorPositionableRealPositionableRoundPositionableImgTranslationAdapter
- 删除了底盘
net.imglib2.img.constant和net.imglib2.sampler.special(ConstantImg、ConstantRandomAccessible等)。现在可以通过net.imglib2.util.ConstantUtils类和Views实现类似的功能。
所有 ImgLib2 子项目都已适应这些更改并发布(在某些情况下作为新的测试版本)。
急待完成的一件事必须将这些新的 ImgLib2 版本上传到 ImageJ 和 §§6§§§ update sites,使 ImageJ 和 Fiji 的用户可以使用它们。此更改相当复杂,因为有很多下游代码受到 API 更改的影响。但我们希望在今年年底向用户提供新的 ImgLib2。请继续关注!