from icy.image import IcyBufferedImageUtil
from icyexecnetgateway import IcyExecnetGateway, unpack_image
code = """
from numpyexecnet import pack_image
from nibabel.testing import data_path
import os
import numpy as np
import nibabel as nib
example_filename = os.path.join(data_path, 'example4d.nii.gz')
img = nib.load(example_filename)
data = img.get_data()
shape = data.shape
xSize = data.shape[0]
ySize = data.shape[1]
zSize = data.shape[2]
tSize = data.shape[3]
for z in range(0, zSize):
zdata = data[:, :, z, 0]
packed_image = pack_image(zdata)
channel.send(packed_image)
"""
with IcyExecnetGateway() as gateway:
gateway.remote_exec(code)
sequence = None
while True:
try:
packed_image = gateway.receive()
unpacked_image = unpack_image(packed_image)
if sequence == None:
sequence = Sequence(unpacked_image)
continue
sequence.addImage(unpacked_image)
except EOFError as e:
Icy.addSequence(sequence)
break