As we further work with OPT data, several questions were raised on the possibility to access Image data cube in arbitrary fashion.
That concerns both reading and writing, but one can limit the question by considering examples of getting (reading) the pixel data from either disk OME-tiff file or from Omero.
in Bioformats, the access procedure used by the OME-tiff reader, is "openBytes"
public byte[] openBytes(int no,
byte[] buf,
int x,
int y,
int w,
int h)
...
Parameters:
no - the image index within the file.
buf - a pre-allocated buffer.
x - X coordinate of the upper-left corner of the sub-image
y - Y coordinate of the upper-left corner of the sub-image
w - width of the sub-image
h - height of the sub-image
In Omero, the analogous procedure is "getPlane"
classmethod getPlane(z, c, t)
Parameters:
z (int) – offset across the Z-axis of the pixel store.
c (int) – offset across the C-axis of the pixel store.
t (int) – offset across the T-axis of the pixel store.
Our main interest is the possibility to read/write the data planes that aren't XY-planes. For example, for the raw OPT data storage with theta-angle set along Z axis, the efficient access to ZX-planes (as efficient as XY-plane reading) will allow constructing Sinograms without loading the whole data-cube into processing computer's memory; the data are large, so otherwise one can hit RAM limit.
As it looks like there are no such tools at the moment, the question is if it is possible and how long would it take to develop them?
Best wishes,
Y.
...