Skip to content

151706061/MedicalTile

 
 

Repository files navigation

MedicalTile

License

If you want to distribute or modify for any business use, please first contact sjin02@syr.edu.

Description

MedicalTile is an open source software for 2D, 3D and 4D medical image visualization and processing. It's based on Qt, ITK and DCMTK. It works on WIN32 platform for now.
Qt ITK DCMTK
If you are interested in this software, please feel free to contact sjin02@syr.edu. Thanks!

Release

DOWNLOAD

You can test the tool by loading the root folder of the data samples below.

[Dicom sample 1](https://github.com/chrisjin/MedicalTile/releases/download/doc/PA3_010-001.zip), more than 20 3D images taken at many sequential time points

[Dynamic MRI samples](http://www.osirix-viewer.com/datasets/)

[More samples](http://www.creatis.insa-lyon.fr/~jpr/PUBLIC/gdcm/gdcmSampleData/Philips_Medical_Images/mr711-mr712/INDEX.htm)

Doc & Manual

When images are loaded, drag it to the browser to display it, drag it to processing panel to manipulate...
Drag, drag, drag.
Draw rectangle to select tiles on the processing panel. Push algorithm button and corresponding alogithm will start with the selected tiles as inputs
[CTRL+]Right button to slice
[CTRL+]Left button to change window width/center
[CTRL+]Middle button to zoom & pan.
CTRL is usually optional, but when the view allows user to draw something, you must push CTRL to slice, zoom, pan, or change window width/center

[Introduction slides](https://github.com/chrisjin/MedicalTile/releases/download/doc/doc.pptx)

Feature

  • Import CT or MR image folders.
  • Display 3D image as slices.
  • MPR view.
  • Image processing algorithms including morphological algorithms, watershed algorithm, registration etc.
  • Data visualization.
  • 3D image series or 4D image, time-density curve of a ROI
  • Zoom, pan, Window level/width
  • Extremely extensible. You can: * Add new algorithms * Add new data types * Add new visualization panels for different data types.
    (so far, only 3D image type, data array type can be visualized)

Screenshot

####Images of a swine taken by a MRI 3D images of 20 time points or 4D image
You can see gradual changes among these images indicating the injection and attenuation of contrast medium. ####Images of brain MPR view ####MPR View in red, green, blue ####Image processing panel You can freely save, move, select, delete and manipulate multple 3D images and other data types on this panel.
All tiles are dragged from the main viewer, generated by an algorthm or loaded from files of a format particularly designed for each type of data.
Each tile can represent a 3D image, a number array or other types.
####Data visualization panel You can set the range of X, Y axis, change the role of each row of numbers. ####Segmentation of kidney of swine ####Time-density curve of contrast medium in kidney after injection

Structure

####Main framework ####ITK and Qt encapsulation

Plugin

  • DLL plugin. Inherit a base class running your GUI, receiving data from the main application, processing your data and returning the result to the main application. The main application can handle all the rest.
  • XML plugin. kind of simple scrypt plugin. A XML plugin organizes existing plugins in a cascading manner. When you run a XML plugin, actually you run several different plugins cascadingly.
    The plugin below combines Subtraction, Gaussian, ROISegmentation, Threshold, Opening, and LargestComponent together.
      <Test>
      <version>1</version>
      <name>KidneySeg</name>
      <category>Kidney</category>
      <algo>Subtraction</algo>
      <algo>Gaussian</algo>
      <algo>ROISegmentation</algo>
      <algo>Threshold</algo>
      <algo>Opening</algo>
      <algo>LargestComponent</algo>
      </Test>
  • Other scrypt plugin. I plan to embed a python interpreter inside my application, but it's not done yet.

How to compile?

####Step 1, download the 3rd party libraries.

  • Download ITK 4.1.0 from ITK
  • Download Qt >= 4.8.1 (I use 4.8.1 for this project, and Qt 4.8.5 also works fine) from Qt
  • Download DCMTK3.6 from DCMTK

####Step 2, compile ITK, DCMTK, and Qt, if you donwload the qt source code package

  • Download CMake.
  • Use CMake to generate VS solution for ITK and DCMTK.
    Remember to set shared library option. Remember to set the CMAKE_INSTALL_PREFIX before generating.
    Hint: CMAKE_INSTALL_PREFIX is the path where you can get full library files after compilation.
  • Compile ITK and DCMTK.
  • Run the INSTALL within each VS solution. After that, you will get full lib and heade files collected in one path same as CMAKE_INSTALL_PREFIX you set.
  • Copy the 3rd party library files into the project and make the directory tree look like the following,
.
|->AlgoCraft, GUICraft, etc.   (Already ex)
|
|->Other    (Rename the folder "Other")                                        -|
    |->itk_dll                                                                  |
    |     |->include                                                            |
    |     |    |->ITK-4.1-->All header files and header sub directories         |
    |     |->lib->*.lib files                                                   |
    |->dcmtk                                                                    |--->3rdparties
          |->include                                                            |
          |    |->dcmtk                                                         |
          |         |->dcmdata-->all header files                               |
          |         |->dcmimage-->all header files                              |
          |         |->...        -->all header files                           |
          |->lib->*.lib files                                                  -|
  • Compile Qt, if you downloaded the source code instead of win32 binaries.

####Step 3, add 3rd pary libraries and compile.

  • Visual studio 2010 is suggested.
  • If you download the Qt binaries, install it.
  • Install Qt add-in for visual studio. You can find it in the downloaded Qt package.
  • Add headers and libraries to visual studio. If you make the directory tree exactly as above, you can skip this step.
  • Then, open the sln file in your visual studio and click build!

To do

  • Reorganize this project using CMake to make path configuration easier when compiling.
  • Add a curve fitting plugin.
  • Some texts are still in Chinese. I need to fix it.

About

A 3D/4D medical image visualization and processing tool.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 99.9%
  • Other 0.1%