读写ImageJ ROI格式
项目描述
Roifile是一个Python库,用于读取、写入、创建和绘制ImageJ ROI,这是一个未记录且ImageJ应用程序特定的格式,用于存储感兴趣的区域、几何形状、路径、文本等,以便进行图像叠加。
- 作者:
- 许可证:
BSD 3-Clause
- 版本:
2024.9.15
- DOI:
快速入门
从Python包索引安装roifile包及其所有依赖项
python -m pip install -U "roifile[all]"
查看存储在ROI、ZIP或TIFF文件中的叠加
python -m roifile file.roi
请参阅示例以了解如何使用编程接口。
源代码、示例和支持可在GitHub上找到。
需求
此版本已测试以下要求和依赖项(其他版本可能也适用)
CPython 3.10.11, 3.11.9, 3.12.5, 3.13.0rc2
Numpy 2.2.1
Tifffile 2024.8.30 (可选)
Matplotlib 3.9.2 (可选)
修订版
2024.9.15
改进类型。
弃用Python 3.9,支持Python 3.13。
2024.5.24
修复GitHub上无法正确渲染的docstring示例。
2024.3.20
修复ROI生成器 (#9) 的问题。
2024.1.10
支持文本旋转。
改进文本渲染。
避免数组复制。
限制从文件读取的大小。
2023.8.30
修复代码风格问题。
添加py.typed标记。
2023.5.12
改进对象表示和类型提示。
停止支持Python 3.8和numpy < 1.21 (NEP29)。
2023.2.12
延迟zipfile的导入。
在写入时验证坐标形状。
2022.9.19
修复整数坐标到-5000..60536的范围,以符合ImageJ规范(破坏性更改)。
对于超出范围的整数坐标,在frompoints中添加subpixel_coordinates。
2022.7.29
…
有关旧版本,请参阅CHANGES文件。
注意
ImageJ ROI格式无法存储-5000..60536范围之外的整数坐标值。
有关参考实现,请参阅ImageJ RoiDecoder.java源代码。
其他处理ImageJ ROI的Python包
示例
从一个x,y坐标数组创建一个新的ImagejRoi实例
>>> roi = ImagejRoi.frompoints([[1.1, 2.2], [3.3, 4.4], [5.5, 6.6]]) >>> roi.roitype = ROI_TYPE.POINT >>> roi.options |= ROI_OPTIONS.SHOW_LABELS
将实例导出为ImageJ ROI格式的字节字符串或文件
>>> out = roi.tobytes() >>> out[:4] b'Iout' >>> roi.tofile('_test.roi')
从文件读取ImageJ ROI并验证内容
>>> roi2 = ImagejRoi.fromfile('_test.roi') >>> roi2 == roi True >>> roi.roitype == ROI_TYPE.POINT True >>> roi.subpixelresolution True >>> roi.coordinates() array([[1.1, 2.2], [3.3, 4.4], [5.5, 6.6]], dtype=float32) >>> roi.left, roi.top, roi.right, roi.bottom (1, 2, 7, 8) >>> roi2.name = 'test'
使用matplotlib绘制ROI
>>> roi.plot()
将ROI写入ZIP文件
>>> roiwrite('_test.zip', [roi, roi2], mode='w')
从ZIP文件读取ROI
>>> rois = roiread('_test.zip') >>> assert len(rois) == 2 and rois[0] == roi and rois[1].name == 'test'
将ROI写入ImageJ格式的TIFF文件
>>> import tifffile >>> tifffile.imwrite( ... '_test.tif', ... numpy.zeros((9, 9), 'u1'), ... imagej=True, ... metadata={'Overlays': [roi.tobytes(), roi2.tobytes()]}, ... )
从ImageJ格式的TIFF文件中读取嵌入的ROI
>>> rois = roiread('_test.tif') >>> assert len(rois) == 2 and rois[0] == roi and rois[1].name == 'test'
从命令行查看存储在ROI、ZIP或TIFF文件中的重叠区域
python -m roifile _test.roi
有关高级示例,请参阅源分布中的roifile_demo.py。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。