imaris / ImarisWriter

Apache License 2.0
31 stars 14 forks source link

ImarisWriter

ImarisWriter is a high performance file writer for microscopy images. It creates image files suitable for high performance visualization and analysis in the Imaris5 File Format. The library facilitates writing of very large image data that exceed a computer’s RAM by “streaming” the data to the library in small blocks. It is capable of writing data with high speed. And it takes care of all the details of multi-resolution resampling, chunking, compression, multi-threading, etc., and delivers its functionality to the user in a simple to use way.

For details refer to our publication: Beati, Igor, Eliana Andreica, and Peter Majer. "ImarisWriter: open source software for storage of large images in blockwise multi-resolution format." arXiv preprint arXiv:2008.10311 (2020).

If ImarisWriter is useful for your work and if you want to help us continue our open source efforts please cite our publication in your work.

Usage

The ImarisWriter library has a C++ API, a C API, and a Python API. Using the C++ API pseudocode for writing a file mainly consists of a loop to copy all blocks to the library:

bpImageConverter<bpUInt16> vImageConverter(...);

for ( all blocks ) { 
 vImageConverter::CopyBlock(vBlockData, vBlockPosition);
}

vImageConverter::Finish(vParameters, ...);

Full usage examples in C++, C, and Python can be found here: https://github.com/imaris/ImarisWriterTest

Dependencies

  1. hdf5 version >= 1.10.4: https://www.hdfgroup.org/downloads/hdf5/ (compile with default options, only base C module is required)
  2. zlib: https://www.zlib.net/ (compile with default options)
  3. lz4: https://github.com/lz4/lz4 (compile with default options)

Build

On Windows, the generated solution files can be opened and compiled with Visual Studio, while on Linux and Mac the generated Makefile can be compiled with make. The Visual Studio version should be specified according to the setup of the other libraries, e.g. adding -G "Visual Studio 14 Win64".