RTK wiki help

From Openrtk
Revision as of 02:16, 26 August 2019 by Srit (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Welcome to RTK

The Reconstruction Toolkit (RTK) is an open-source and cross-platform software for fast circular cone-beam CT reconstruction based on the Insight Toolkit (ITK). RTK is developed by the RTK consortium. This is the wiki documentation, other information is available here:

Main website

Project

Resources

Contact us

GettingStarted.md

See the Getting started and installation pages.

Docker

Another installation solution is to use the Docker solution provided by Thomas Baudier:

 docker pull tbaudier/rtk:v1.3.0
 docker run -ti --rm -e DISPLAY=$DISPLAY -v [Documents]:/home tbaudier/rtk:v1.3.0 bash

Information on what is installed can be reached using the commands:

 docker images
 docker ps -a

To clean it after use, you can do:

 docker rm -f [container id]
 docker rmi -f [image id]

Tutorials

Tutorial 0 - Building a HelloWorld application with RTK

RTK is a library, therefore it's meant to be integrated into application. This tutorial shows how to create a simple HelloWorld project that links with RTK. The source code for this tutorial is located in RTK/examples/HelloWorld.

  • First you need to create a CMakeLists.txt with the following lines:
 # This project is designed to be built outside the RTK source tree.
 PROJECT(HelloWorld)
 # Find the RTK libraries and includes
 FIND_PACKAGE(RTK REQUIRED)
 INCLUDE(${RTK_USE_FILE})
 # Executable
 ADD_EXECUTABLE(HelloWorld HelloWorld.cxx )
 TARGET_LINK_LIBRARIES(HelloWorld ${RTK_LIBRARIES})
 TARGET_LINK_LIBRARIES(HelloWorld ${ITK_LIBRARIES})
  • Create a HelloWorld.cxx file
 #include <rtkFDKBackProjectionImageFilter.h>
 int main(int argc, char **argv)
 {
 // Define the type of pixel and the image dimension
 typedef float OutputPixelType;
 const unsigned int Dimension = 3;
 // Define the type of image
 typedef itk::Image< OutputPixelType, Dimension > OutputImageType;
 // Define and allocate the FDK Back Projection Filter
 typedef rtk::FDKBackProjectionImageFilter<OutputImageType, OutputImageType> BPType;
 BPType::Pointer p = BPType::New();
 std::cout << "RTK Hello World!" << std::endl;
 return 0;
 }
  • Run CMake on the HelloWorld directory and create a HelloWorld-bin
  • Configure and build the project using your favorite compiler
  • Run the HelloWorld application. If everything runs correctly you should see "RTK Hello World!" written on the console.

Tutorial 1 - Modifying a basic RTK application

In RTK/applications/rtktutorialapplication/, you will find a very basic RTK application that can be used as a starting point for building more complex applications. The code suggests ways to modify the application, which should help beginners get the hang of ITK and RTK.

Tutorial 2 - My first reconstruction

Reconstruct a Sphere

Wrapping

SimpleRTK provides a wrapping mechanism to several languages such as Python and C#.

WaterPreCorrection is an example of SimpleRTK processing to correct for cupping.

FanBeam is an example of SimpleRTK processing to do 2D fan-beam reconstructions.

You can also compile them yourself.

Applications

RTK also provide a set of command line applications that are compiled if the cmake option BUILD_APPLICATIONS is turned on. Each application uses [gengetopt] to allow parsing of the command line options. The manual of each application can be obtained with the --help or -h option. They can be executed sequentially in bash scripts. We provide below links to examples of use for RTK applications.

Image quality

Summary of existing and future developments for image quality in RTK

Geometry

The description of the 3D circular geometry is based on the international standard IEC 61217 which has been designed for cone-beam imagers on isocentric radiotherapy systems, but it can be used for any 3D circular trajectory. The fixed coordinate system of RTK and the fixed coordinate system of IEC 61217 are the same. A clear understanding of the geometry is essential for the use of a tomography package. The geometry description has been written in this Doxygen page.

ImagX geometry

We provide as an example of geometry conversion the File:GeometryImagX.pdf specifications of the geometry used by the ImagX project (IBA/UCL) with the File:GeometryImagX.txt script file developed in Maxima to do the conversion.

Developer's corner

Developer's documentation

We only provide the doxygen documentation at the moment.

Coding style

RTK is based on ITK and aims at following its coding conventions. Any developer should follow these conventions when submitting new code or contributions to the existing one. We strongly recommend you to read thoroughly ITK's style guide.

Testing

Meetings