Lassy is a C++ library useful for mining imaging data, especially around an object of interest. It is compatible with VTK meshes and NIFTII or NRRD images.
Image data mining is performed using surface normal analysis. The image intensity of surface normal profiles is returned. The library is also capable of mining data from surface meshes. Please see full list of applications, or get in touch if you need a functionality which this library can provide.
This library was built for mining medical imaging data. A simple example application would be to interrograte the image around an organ or anatomical structure in a medical 3D image. Regions around an organ's medical image are usually interesting. In cardiac imaging, the region around the heart's chamber could show areas of damage sustained from cardiac arrest.
The project is undergoing continuous iteration with new functionalities added from time to time. If you would like to see a new functionality, please get in touch. The growing list of functionalities can be found below.
There are unfortunately some pre-requisities for the images this library can process. The 3D images are expected to be in the medical image formats: NifTII, NRRD, Analyze and GIPL. The meshes can be in VTK format.
If you use this for research, we would appreciate if you could reference our work Karim et al. and Knowles et al.. Also, visit my wiki to read further on our cardiac imaging research projects
This library has some dependencies as it requires to perform 3D medical image processing and process 3D surface meshes. For these purposes, it depends on the Image Registration Toolkit (ITK) and the Visulisation Toolkit (VTK). Both are open-source and written in C++. VTK is released under the 3-Clause BSD license and ITK was released under the Apache 2.0 license.
The library currently has two dependencies: ITK and VTK. These need to be built from source first using CMake. There are Github repositories for ITK and VTK
Once the ITK and VTK toolkits are built, this library can be built from source by running CMake on the source files. Windows binaries will also be available soon and can be requested.
The applications
folder contains several examples of command-line tools that utilise this library.
The list of applications continue to grow:
- Image intensity interrogation around object of interest
applications\surf.cxx
- Distance to an adjacent mesh using interrogating normals (INTERN)
applications\wallthickness.cxx
- Distance within a convex object mesh using INTERNs
applications\shellenclosethickness.cxx
- Copying data from an adjcent mesh using INTERNs
applications\target2source.cxx
- Ordinary statistics (Median and mean) on scalars of mesh vertices
applications\shellstats.cxx
- Boolean operations on scalars of two meshes
applications\boolmask.cxx
- Compute vertex displacements to a deformed mesh
applications\displacement.cxx
- Mining image data along a user-defined trajectory on a mesh
applications\encirclement.cxx
- Extracting image features as CSV for on-ward pixel classification
applications\imagefeature.cxx
- Aggregate scalars inside a mask
applications\maskshell.cxx
- Reads pixel values as CSV file to update an image
applications\createbinaryimage.cxx
- Reads 3D points and scalars from CSV and maps them to the mesh
applications\csvshell.cxx
- Scalar union of two geometrically exact meshes
applications\combshell.cxx
- Draws contour of binary image on greyscale image
applications\contourbinaryimage.cxx
Lassy has been tested on Windows 7 on Visual Studio 2015 and MacOS Sierra 10.12 running native g++ compilers.
The software has been released under the Apache 2.0 licensing terms.
Dr. Rashed Karim
Department of Biomedical Engineering
King's College London