Menu

Tree [993ddb] master /
 History

HTTPS access


File Date Author Commit
 CMake 2019-05-19 Shekhar Chandra Home Windows Shekhar Chandra Home Windows [7f0c3d] Added milxBlend image blend command line applic...
 apps 2019-05-19 Shekhar Chandra Home Windows Shekhar Chandra Home Windows [7f0c3d] Added milxBlend image blend command line applic...
 docs 2016-02-08 Shakes Shakes [d204d3] Added build log docs file for future logging.
 include 2019-05-19 Shekhar Chandra Home Windows Shekhar Chandra Home Windows [7f0c3d] Added milxBlend image blend command line applic...
 plugin 2018-11-14 Shakes Chandra (Mac) Shakes Chandra (Mac) [e812da] Fixes for MacOSX packaging and plugin support.
 projects 2017-03-07 Shekhar Chandra Home Windows Shekhar Chandra Home Windows [32037d] Forgot to add project option commit changes in ...
 resources 2018-11-14 Shekhar Chandra Home Windows Shekhar Chandra Home Windows [3ccf27] Updated web pages for project.
 scripts 2017-07-05 Shekhar Chandra Home Windows Shekhar Chandra Home Windows [29d0d9] Added Python script to test smilx features.
 src 2019-07-12 Shekhar Chandra Home Windows Shekhar Chandra Home Windows [85f9f1] Fixed a bug where binary threshold broke for in...
 tests 2014-11-10 Shekhar Chandra Shekhar Chandra [e792c8] Initial Commit - SMILI Open Source Version 0.996
 ui 2017-09-12 Shekhar S. Chandra Shekhar S. Chandra [573cba] Added reseting of GUI settings etc.
 BUILDING.md 2014-11-10 Shekhar Chandra Shekhar Chandra [e792c8] Initial Commit - SMILI Open Source Version 0.996
 CMakeLists.txt 2017-03-07 Shekhar Chandra Home Windows Shekhar Chandra Home Windows [32037d] Forgot to add project option commit changes in ...
 Copyright.txt 2014-11-10 Shekhar Chandra Shekhar Chandra [e792c8] Initial Commit - SMILI Open Source Version 0.996
 README.md 2018-11-18 Shakes Shakes [93fb28] More intro content for README
 RELEASE.md 2015-12-01 Shekhar Chandra Home Windows Shekhar Chandra Home Windows [d5470c] Minor output for OS release.
 _config.yml 2018-09-12 Shakes Shakes [a9ac41] Set theme jekyll-theme-slate
 license.txt 2014-11-10 Shekhar Chandra Shekhar Chandra [e792c8] Initial Commit - SMILI Open Source Version 0.996
 smili.Doxyfile 2017-07-06 Shekhar S. Chandra Shekhar S. Chandra [0417ee] Updated HTML web site files.
 smili.qrc 2015-11-23 Shakes Shakes [972aec] Revamped cmaps, added two new cmaps and window ...

Read Me

SMILI Logo

sMILX Screenshot

Twitter Facebook GitHub YouTube Channel

The Simple Medical Imaging Library Interface (SMILI), pronounced 'smilie', is a light weight framework for the rapid development of biomedical imaging applications. Please cite our SMILI publication if you find this project useful:

Chandra, S. S.; Dowling, J. A.; Engstrom, C.; Paproki, A.; Neubert, A.; Xia, Y.; Rivest-Hénault, D.; Shen, K.-K.; Salvado, O.; Crozier, S. & Fripp, J.
"A simple framework for the rapid development of biomedical imaging applications"
Computer Methods and Programs in Biomedicine, vol. 164, pp. 193205, 2018.

DOI: https://doi.org/10.1016/j.cmpb.2018.07.011

Quick Start

Drag n Drop 1
Drag n Drop 2

Have a look at the Quick Start page on the SMILI homepage, as well as the SMILI YouTube channel for tutorial videos.

Introduction

SMILI is built around Qt, ITK and VTK, it is divided into three main parts:

  • the sMILX user interface application for medical imaging and image processing with just a few mouse clicks.
  • a user-interface dependent library for writing and using easy to use medical imaging applications.
  • a user-interface indepdendent library, so that it easily utilised in your own command line applications. This level can directly interfaces with ITK and VTK.

The milxQt is a Qt4 dependent library that extends milxSMILI to handle user-interface and visualisation using Qt4. The SMILI X Viewer (sMILX) utilises milxQt to create a GUI-application for easy medical imaging and surface processing.

It allows for a very high level access to image and model process and display capabilities. For example, in order to triangulate, decimate, smooth and clean a polygonal surface and display it in coronal view, one simply issues:

model->clean();
model->smoothSinc(20); // windowed sinc 20 iterations
model->decimate(0.5); // 50% decimation
model->colourMapToJet();
model->viewToCoronal();

Similar syntax is available to the sMILX Python plugin, which has a Python console for autmoating the user interface.

Prerequisites

ITK 3.20+ and VTK 5.8+ built and installed. SMILX also requires Qt 4 and CMake to build. SMILI can function with either ITK or VTK installed and will detect each library.

Downloads of pre-requisite libraries and other helpful files can be found here.

To utilise just the imaging parts of SMILI, you just need ITK. To utilise the surface/model parts of SMILI you just need VTK. To utilise the GUI dependent parts you need both libraries.

On Ubuntu linux systems (12.04+), simply install the repository version of Qt, VTK (with VTK-Qt), PythonQt (to build the Python plugin) and ITK. We reccomend ITK 4.5 and VTK 6.1 and not VTK 5.10.1 which seems to have a number of features broken.
For ITK 3 builds, I suggest a local build of ITK 3 with review enabled to get all the features currently available.

Build Steps

Detailed build instructions can be found on the Building page. It goes something like:

mkdir build
cd build
ccmake .. OR cmake-gui
make OR ninja

Use the BUILD_VIEWER to ON to build sMILX and BUILD_PLUGINS to ON to build plugins for sMILX.

Plugins for sMILX

  • For building SMILX Python Plugin
    Build PythonQt <pythonqt.sourceforge.net> and Python 2.x installed</pythonqt.sourceforge.net>

  • For building SMILX Animate Plugin (used for making movies)
    Build VTK with the FFMPEG Encoder ON

  • For building SMILX DICOM Plugin (used for making movies)
    Build SMILI with ITK 4.x

  • For building SMILX SSM Plugin (used for shape models)
    Copy the relelvant SSM source files from the website, use the USE_SSM_LOCAL ot ON and build.
    You will need to use ITK 3.20 and VTK 5.8 or VK 5.10.1

Scripting

All aspects of sMILX can be scripted using the python plugin. Example scripts for sMILX can be found in scripts/ directory with the prefix 'smilx_'. Additional modules for filenames from directories etc. are also in the scripts/ directory.

Applications like milxOverlay can also be run as a batch job. All batch scripts for apps can be found in the scripts/ directory with the prefix 'batch_'. The scripts using the multi-processing module wrapped conveniently in the batch module found in the scripts/ directory.

Qt 5 Support

The latest changes for supporting Qt 5 is provided for in the topic-qt5 branch.

Appendix A - VTK MODULAR

SMILI needs

  • Enable Qt and Imaging modules
  • Enable IO-PLY, RenderingImage modules
  • Modules vtkIOInfovis vtkFiltersProgrammable

milxQt needs:

  • Modules vtkRenderingLOD vtkChartsCore vtkViewsContext2D vtkIOExport