If you publish work processed using Hydra, please cite:

Wait, E., Winter, M. & Cohen, A. R. Hydra image processor: 5-D GPU image analysis library with MATLAB and python wrappers. Bioinformatics (2019). doi:10.1093/bioinformatics/btz523

  • White Facebook Icon
  • White Twitter Icon
  • White LinkedIn Icon

How to Compile

There are binaries available for Windows and Linux here. If you desire to build directly from source, HIP comes with two options:

  • Visual Studio solution (Windows)

  •  Makefile (Linux).

 

Future releases will utilize CMake to assist in setting up your environment. In the meantime, please use the following directions to set up your development environment.

Windows

PLEASE follow these instructions prior to using HIP on Windows.

Build

The full Hydra Image Processing library can be built using the Visual Studio solution file src/c/CudaImageProccessing.sln. Python bindings are built as part of the main solution, or can be built separately by src/c/CudaPy3DLL.vcxproj.

Two environment variables must be defined for a successful build:

  1. PYTHON3_DIR - Root directory of the Python 3.x installation to build against

  2. NUMPY3_DIR - Root directory of the Numpy installation to build against

It is currently simplest to build Python bindings using the full solution file, at present, as the Python project is dependent on the core image processing library. NOTE: Unless you have Debugbuild of Python 3.x, the bindings must be built in Release mode.

Python Bindings

Requirements:

Experimental Python bindings have been created for the Hydra Image Processing library, however, they must currently be built from source, since Python versions only support limited binary compatibility.

Installation and Usage

After a successful build the file src/Python/HIP.pyd should be placed in a directory on the PYTHON_PATH to make the Hydra Image Processing tools accessible from Python.

For use in Python import the HIP module:

import HIP

Example of blurring a random numpy volume:

import HIP import numpy as np im = np.random.randint(0,256, size=(512,512,25), dtype=np.uint8) imOut = HIP.Gaussian(im, [25,25,10])