Medical Image Packages - DCMTK, VTK, ITK, RTK, SimpleITK

1. ITK-medical image processing software package

ITK (Insight Segmentation and Registration Toolkit) is a medical image processing software package developed by the National Library of Medicine under the National Institutes of Health. It is an open source, cross-platform image analysis extension software tool.

During the development of ITK, an advanced multimodal data segmentation and registration algorithm is used to deal with the problems of image registration and segmentation. ITK is implemented in C++ and can be cross-platform, and uses CMake to manage the compilation process to ensure that the compilation process is independent of the platform. In addition, it also uses a process called volume to generate interfaces between C++ and other interpreters, so that developers can develop in various programming languages.

ITK's C++ implementation style is based on generic programming, which means that it uses templates to ensure that the same code can be widely applied to any class or type. This approach to C++ templates makes the coding process very efficient, and enables many software problems to be discovered at compile time rather than at runtime.

Remarks: ITK+VTK is recommended for medical image processing, ITK is used as the underlying image processing algorithm, VTK is used for visualization, and itkImageToVTKImageFilter is used between ITK and VTK

2. Simplified interface of SimpleITK-ITK

SimpleITK is a simplified interface of ITK, which is more convenient to use and has multiple language interfaces. (Python version, the installation is relatively simple, pip install SimpleITK)

SimpleITK is a simplified open source interface to the US National Library of Medicine Insight Segmentation and Registration Toolkit (ITK), a c++ open source image analysis toolkit widely used in academia and industry. SimpleITK supports 8 programming languages, including c++, Python, R, Java, c#, Lua, Ruby, and TCL. Binary distributions of SimpleITK are currently available for all three major operating systems (Linux, OS X, and Windows).

SimpleITK is a software that specializes in processing medical images. In SimpleITK, the concept of an image is very different from the RGB image we commonly use in computer vision. The latter is just a multidimensional matrix, which is a mathematical concept. In SimpleITK, the image is A physical entity, each pixel in the image is a point in the physical space, not only has the pixel value, but also has the concept of coordinates, spacing, direction and so on.

insert image description here

size: the number of pixels of the image in each dimension
spacing: the distance between pixels in each dimension of the image (at the physical level, with units, generally mm)
physical extent: the size of the image in physical space
Origin: the coordinates of the origin of the image ( At the physical level, there are units, generally mm, consistent with spacing)
direction: the direction cosine matrix is ​​used, that is, the angle of the image's own coordinate system relative to the world coordinate system (fixed), and the straightforward point is the new coordinate Projection in all directions on the original coordinate system

3. RTK-CBCT reconstruction algorithm package

RTK (RTK official website) is an open source CBCT reconstruction algorithm package, which is owned by Kitware and expanded based on the ITK package. RTK implements many existing CT image reconstruction algorithms, including ADMM, SART, SIRT, POCS, etc. In addition, the RTK package is written based on the idea of ​​generic programming. RTK has a complete development documentation library.

Cone Beam CT is widely used in anatomical imaging and radiation therapy (Radiation Therapy) because of its high radiation efficiency and high acquisition efficiency.

The Reconstruction Toolkit (RTK) is an open source cross-platform software based on Insight Toolkit (ITK) for fast cone-beam CT reconstruction. RTK is developed by the RTK Consortium. RTK provides or will provide:

Basic operators for reconstruction such as filtering, forward, projection and backprojection, multi-threaded CPU and GPU versions, respiratory motion correction tools, I/O for multiple scanners, preprocessing of scatter corrected raw data

4. DCMTK-dicom protocol open source library

DCMTK is an open source project provided by the German offis company, which almost implements the complete DICOM protocol, and is one of the three major dicom open source libraries. DCMTK is developed in C++ language.

Since the image storage and transmission of current medical imaging equipment is gradually moving closer to the DICOM standard, in the process of medical image processing, we often need to write various program modules related to DICOM format images to complete our own processing functions. It is a huge project to understand the DICOM protocol from scratch, and then write these codes to implement these protocols completely. The DCMTK developed by German offis company provides us with a platform to implement the DICOM protocol, so that we can easily complete our main work on the basis of it, without having to put too much energy on the details of implementing the DICOM protocol .

After more than 10 years of development and maintenance, this development kit has basically realized all the contents of the DICOM protocol. The development kit provides all source code, support library and help documentation. DCMTK provides possible versions for use under various operating systems, such as LINUX, SUN, MACOS, WINDOWS, etc. Users can compile according to their own development platforms.

DICOM (Digital Imaging and Communications in Medicine) is an international standard (ISO 12052) for medical images and related information. DICOM is widely used in medical radiology, cardiovascular imaging, and radiological diagnostic equipment (X-ray, CT, nuclear magnetic resonance, ultrasound, etc.), and has been increasingly used in other medical fields such as ophthalmology and dentistry.

5. VTK-3D computer graphics, image processing and visualization

Vtk, (visualization toolkit) is an open source free software system mainly used in 3D computer graphics, image processing and visualization. Vtk is designed and implemented on the basis of object-oriented principles. Its core is built with C++, contains about 250,000 lines of code, more than 2,000 classes, and several conversion interfaces, so it can also be freely passed through Java. , Tcl/Tk and Python various languages ​​use vtk.

The visualization tool library (VTK, Visualization Toolkit) is an open source, cross-platform, and supports parallel processing (VTK was used to process data with a size of nearly 1 Petabyte, and its platform is a tool 1024 owned by the Los Alamos National Laboratory in the United States. graphics application library for large systems with processors). In 2005, it was used by the U.S. Army Research Laboratory to simulate the situation where the Russian-made anti-missile tank ZSU23-4 was attacked by a plane wave, and its computing nodes were as high as 2.5 megabytes. Vtk can operate on almost any Unix-based platform, as well as Windows 95/98/NT/2000/XP.

VTK is an open source, freely available software system used by thousands of researchers and developers worldwide for 3D computer graphics, image processing, and visualization. VTK includes a c++ class library, numerous translation interface layers, including Tcl/Tk, Java, Python. Visualization Toolkit is a supporting environment for the construction and operation of visual application programs. It is developed on the basis of the three-dimensional function library OpenGL using the object-oriented design method. It integrates the details that we often encounter in the visual development process. Shield it and encapsulate some commonly used algorithms. For example, Visualization Toolkit encapsulates the MarchingCubes algorithm, which is more common in surface reconstruction, and supports us in the form of a class, so that we do not have to repeatedly write the code of the MarchingCubes algorithm when performing surface reconstruction on 3D regular lattice data. Directly use the vtkMarchingCubes class already provided in the Visualization Toolkit. Visualization Toolkit is a powerful visual development tool that provides direct technical support to researchers engaged in the development of visual application programs.

6. OpenGL-rendering 2D, 3D vector graphics

OpenGL (English: Open Graphics Library, translated name: Open Graphics Library or "Open Graphics Library") is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. This interface consists of nearly 350 different function calls used to draw everything from simple graphics bits to complex 3D scenes. Yet another program interface system is Direct3D on Microsoft Windows only. OpenGL is commonly used in CAD, virtual reality, scientific visualization programs, and video game development.

Efficient implementations of OpenGL (that take advantage of graphics acceleration hardware) exist on Windows, some UNIX platforms, and Mac OS. These implementations are generally provided by display device manufacturers, and are very dependent on the hardware provided by the manufacturer. The open source library Mesa is a pure software-based graphics API whose code is compatible with OpenGL. However, for license reasons, it only claims to be a "very similar" API.

7. OpenCV - computer vision and machine learning software library

OpenCV is a cross-platform computer vision and machine learning software library released under the Apache 2.0 license (open source), which can run on Linux, Windows, Android and Mac OS operating systems. It is lightweight and efficient-consists of a series of C functions and a small number of C++ classes, and provides interfaces in Python, Ruby, MATLAB and other languages ​​to implement many general algorithms in image processing and computer vision

OpenCV is written in C++ language, it has C++, Python, Java, and MATLAB interfaces, and supports Windows, Linux, Android, and Mac OS, OpenCV is mainly inclined to real-time vision applications, and utilizes MMX and SSE instructions when available, and now also Provide support for C#, Ch, Ruby, GO.

8. Halcon- machine vision algorithm package

HALCON is a complete standard machine vision algorithm package developed by MVtec in Germany, and has a widely used machine vision integrated development environment. It saves product cost and shortens software development cycle - HALCON's flexible architecture facilitates rapid development of machine vision, medical imaging and image analysis applications. It has been recognized as the Machine Vision software with the best performance in the industrial circles of Europe and Japan.

HALCON originated from academia, and it is different from general commercial software packages on the market. In fact, this is an image processing library consisting of more than a thousand independent functions and the underlying data management core. It includes all kinds of filtering, color and geometry, mathematical conversion, morphological calculation analysis, correction, classification recognition, shape search and other basic geometric and image calculation functions. Since most of these functions are not designed for specific jobs, as long as you use Where image processing is obtained, HALCON's powerful computing and analysis capabilities can be used to complete the work. The scope of application is almost unlimited, covering medicine, remote sensing detection, monitoring, and various types of automatic detection in industry.

HALCON supports Windows, Linux and Mac OS X operating environments, which guarantees the validity of the investment. The entire function library can be accessed in many common programming languages ​​such as C, C++, C#, Visual basic and Delphi. HALCON provides interfaces for a large number of image acquisition devices, ensuring hardware independence. It provides interfaces for more than a hundred types of industrial cameras and frame grabbers, including GenlCam, GigE and IIDC 1394.

Guess you like

Origin blog.csdn.net/Joker00007/article/details/128467873