image thumbnail

OME Bio-Formats 5D 扩展 Extension

version 1.1.0 (39.5 MB) by 埃博拉酱
像操作5维数组一样读写 OME BioFormats 格式图像文件

17 Downloads

Updated 29 Apr 2022

From GitHub

View license on GitHub

像操作5维数组一样读写 OME BioFormats 格式图像文件

本包所有类位于命名空间+OmeBioformats5D下,使用前需import:

import OmeBioformats5D.*

目录

  • FormatReader5D loci.formats.FormatReader的增强版,直接读入5D(XYCZT)图像数据
  • FormatWriter5D loci.formats.FormatWriter的增强版,直接写出5D(XYCZT)图像数据
  • OirReader5D 针对 Olympus OIR 格式的特化读取器,提供 OME Metadata 不能包含的特定元数据

FormatReader5D

loci.formats.FormatReader的增强版,直接读入5D(XYCZT)图像数据

构造函数

要构造本类对象,需要提供图像文件路径,或者loci.formats.IFormatReader对象作为输入参数。

如果提供loci.formats.IFormatReader作为输入参数,则调用方应当在调用前对其setMetadataStore以及setId,调用后close

%% 从文件路径直接创建
Reader=OmeBioformats5D.FormatReader5D("D:\Image.oir");
%% 从Bioformats Reader创建
BfReader=Memoizer(ChannelSeparator(ChannelFiller));
Metadata=loci.formats.ome.OMEPyramidStore;
BfReader.setMetadataStore(obj.Metadata);
BfReader.setId(Image);
Reader=OmeBioformats5D.FormatReader5D(BfReader);
%使用此种语法时,传入的原型读取器归调用方所有,本类只负责使用,用完后不负责关闭,调用方可以选择继续重用做其他的事情,或者关闭
BfReader.close;

只读属性

SizeP(1,1)uint8,每个像素所占的字节数

SizeX(1,1)uint16

SizeY(1,1)uint16

SizeC(1,1)uint8

SizeZ(1,1)uint8

SizeT(1,1)uint16

DimensionOrder(1,1)ome.xml.model.enums.DimensionOrder

PixelType(1,1)ome.xml.model.enums.PixelType

Metadata(1,1)loci.formats.meta.IMetadata

ChannelColors(:,1)struct,ABGR颜色结构体,对应每个通道的颜色

ReadArray

像读入数组一样从图像文件中读入像素值

%按照原始维度顺序读入
Image=obj.ReadArray(0,obj.SizeY:-1:1,1:100);
%上述代码读入所有X维度,Y维度反转,第3维读1:100,第4、5维读入全部可以省略
%按照指定维度顺序读入
Image=obj.ReadArray(Y=0,X=0,C=[3 1 2],Z=1);
%上述代码读入所有YXT维度,C维度按[3 1 2]排序,Z读入1,并按YXCZT维度顺序排布输出数组

本函数支持按照原始维度顺序读入数组,或者按照指定的维度顺序读入。

语法

Image=obj.ReadArray(RangeX,RangeY,Range1,Range2,Range3);%可以省略后续维度表示读入全部
Image=obj.ReadArray(Dimension=Range,…);%未指定的维度将按照原始顺序排在最后并读入全部

可选位置参数

RangeX, RangeY(1,:)uint16,X、Y维度读入范围,用0表示读入全部

Range3, Range4, Range5(1,:)uint16,CZT维度读入范围,具体顺序取决于DimensionOrder,用0表示读入全部

未指定的后续位置参数将视为全部读入

名称值参数

X, Y, C, Z, T(1,:)uint16,各维度读入范围,用0或省略表示读入全部。不同于一般的名称值参数是无序的,此处输入的名称值参数顺序将决定输出数组的维度顺序,因此即使一个维度读入全部也可能需要用0占位而不是直接省略。被省略的维度将按照源文件顺序自动追加在最后读入全部。

返回值

Image(:,:,:,:,:),返回读入的像素数组,数据类型与PixelType一致

FormatWriter5D

loci.formats.FormatWriter的增强版,直接写出5D(XYCZT)图像数据

构造函数

可用多种方式构造

语法

obj=loci.formats.FormatWriter5D(FormatWriter);
obj=loci.formats.FormatWriter5D(FilePath,Metadata);
obj=loci.formats.FormatWriter5D(FilePath,SizeX,SizeY,SizeC,SizeZ,SizeT,DimensionOrder,PixelType);

参数说明

FormatWriter(1,1)loci.formats.IFormatWriter,如果使用该参数,则应当对该对象预先进行setMetadataRetrieve和setId;事后要记得close

FilePath(1,1)string,图像文件路径

Metadata(1,1)loci.formats.meta.IMetadata,元数据存储对象,一般从其它OME图像读取器中取得

SizeX, SizeY, SizeC, SizeZ, SizeT(1,1)uint16,各维度尺寸

DimensionOrder(1,1)ome.xml.model.enums.DimensionOrder,维度顺序。前两维必须是XY,后三维可以是CZT的任意排列,例如ome.xml.model.enums.DimensionOrder.XYCZT

PixelType(1,1)ome.xml.model.enums.PixelType,像素数据类型,可以是1、2、4字节有无符号整数类型或单双精度浮点类型(但字母要大写),例如ome.xml.model.enums.PixelType.UINT16

WriteArray

像写出数组一样向图像文件中写出像素值

%按照原始维度顺序写出
obj.WriteArray(Image,0,obj.SizeY:-1:1,1:100);
%上述代码写出所有X维度,Y维度反转,第3维写到1:100,第4、5维顺序写出全部可以省略
%按照指定维度顺序写出
obj.ReadArray(Image,Y=0,X=0,C=[3 1 2],Z=1);
%上述代码写出所有YXT维度,C维度写出到[3 1 2]位置,Z维度写出到1,并指定Image的维度顺序是YXCZT

本函数支持按照原始维度顺序写出数组,或者按照指定的维度顺序写出。

语法

obj.ReadArray(Image,RangeX,RangeY,Range1,Range2,Range3);%可以省略后续维度表示顺序写出全部
obj.ReadArray(Image,Dimension=Range,…);%未指定的维度将按照原始顺序排在最后并顺序写出全部

必需参数

Image(:,:,:,:,:),要写出的像素数组,数据类型与PixelType一致。

可选位置参数

RangeX, RangeY(1,:)uint16,X、Y维度写出位置,用0表示顺序写出全部。如果指定这两个参数,它们的长度必须恰好等于源文件中定义的SizeX和SizeY;如果不指定,则Image的XY前两维长度必须恰好等于源文件中定义的SizeX和SizeY。

Range3, Range4, Range5(1,:)uint16,CZT维度写出位置,具体顺序取决于DimensionOrder,用0表示顺序写出全部

未指定的后续位置参数将视为全部顺序写出

名称值参数

X, Y, C, Z, T(1,:)uint16,各维度写出位置,用0或省略表示顺序写出全部。不同于一般的名称值参数是无序的,此处输入的名称值参数顺序定义了Image数组的维度顺序,以便写入正确的维度,因此即使一个维度需要写出全部也可能需要用0占位而不是直接省略。被省略的维度将按照源文件顺序自动追加在最后顺序全部写出。

特别提示

单次写入必须将XY维度写满;CZT维度可以分多次写入,但请务必写满全部维度后再关闭文件,否则将产生损坏的错误文件。

OirReader5D

针对 Olympus OIR 格式的特化读取器,继承自FormatReader5D,提供 OME Metadata 不能包含的特定元数据。

构造函数

要构造本类对象,需要提供OIR图像文件路径,或者loci.formats.in.OIRReader对象作为输入参数。如果提供loci.formats.in.OIRReader作为输入参数,则应当对该对象预先进行setMetadataRetrieve和setId;事后要记得close

只读属性

ImageProperties(1,1)org.w3c.dom.Document,为解析后的OIR格式特定XML元数据

ScannerType(1,1)string,Galvano/Resonant

ZStack(1,1)string,分层模型,如Piezo

FrameRate(1,1)single

DeviceNames(:,1)string,设备名称,如RNDD4G, CD1等,每个设备提供一个通道

Cite As

埃博拉酱 (2022). OME Bio-Formats 5D 扩展 Extension (https://github.com/Silver-Fang/OME-BioFormats-Extension/releases/tag/v1.1.0), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2022a
Compatible with R2021b and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

+OmeBioformats5D

+OmeBioformats5D/@FormatReader5D

+OmeBioformats5D/@FormatWriter5D

+OmeBioformats5D/@FormatReader5D

+OmeBioformats5D/@FormatWriter5D

doc

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.