GithubHelp home page GithubHelp logo

cnu1439 / smili Goto Github PK

View Code? Open in Web Editor NEW

This project forked from shakes76/smili

0.0 2.0 0.0 17.34 MB

Scientific Visualisation Made Easy

License: Other

CMake 2.91% C++ 86.72% Shell 0.15% Objective-C 5.12% HTML 2.67% Python 2.42%

smili's Introduction

SMILI Logo

sMILX Screenshot

Introduction

The Simple Medical Imaging Library Interface (SMILI) is a light weight medical imaging library for image and model/surface processing and visualisation.

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

  • the sMILX user interface application for medical imaging 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. 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

  • 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.

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.