8000 Extract a scene from a czi file · Issue #15 · ptahmose/MEXlibCZI · GitHub
[go: up one dir, main page]

Skip to content

Extract a scene from a czi file #15

Open

Description

@SNIR-NIMH

Hello,
Thank you for the wonderful Matlab interface. I found it very useful and only code that worked on my czi file. Other libraries (aicsimageio, pyCZIutils, aicspylibczi,bioformats) didn't work.

If anyone else is wondering how to get a scene from a czi image, here is what I used

%Inputs:
inputczi=/home/user/myczifile.czi
scenenum=5  %5th scene


h=MEXlibCZI('Open',inputczi);  % inputczi is a SCZXY file,S=scene,C=channel,Z=number of slices
% z = the z slice to use, 0 based
% channelnum = channel number to use, 0 based
ID=['Z' num2str(z) 'C' num2str(channelnum)];
% Use ZzCc format,Z0C1, Z1C1 etc, 0 based
% scenenum = scene index, 1 based because Matlab struct
b1=MEXlibCZI('GetSingleChannelScalingTileComposite',h,info.sceneBoundingBoxes(scenenum).boundingBox,ID,1);  % full zoom=1
% b1 is a YX 2D matrix of uint16. For some reason, GetMultiChannelScalingTileComposite gives uint8.
% b1 dimension is YX as opposed to XY, czi XY is Tif's YX, so need to transpose the file later
MEXlibCZI('Close',h);

Also, it is possible to run this in parallel to obtain multiple channels or scenes (given the disk I/O bound)

% Obtain multiple z slices in parallel and create a 3D volume
temp=cell(1,Z);
scenenum=5;    % get 5th scene (1 based)
channelnum=3; % extract 4th channel, 0 based index
parfor z=1:Z
    fprintf('Reading Z=%d\n',z);
    h=MEXlibCZI('Open',inputczi);
    s1=['Z' num2str(z-1) 'C' num2str(channelnum-1)];  
    % Use ZzCc format,Z1C1,Z2C1 etc, 0 based
    b1=MEXlibCZI('GetSingleChannelScalingTileComposite',h,info.sceneBoundingBoxes(scenenum).boundingBox,s1,1);
    temp{z}=b1;
    MEXlibCZI('Close',h);
end
fprintf('\n');
for z=1:Z
    vol(:,:,z)=temp{z};
end

Thank you and I hope this snippet is useful for someone else.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0