Sight
Branch | Status |
---|---|
Dev | |
Master |
Description
Sight, the Surgical Image Guidance and Healthcare Toolkit aims to ease the creation of applications based on medical imaging. //: # (cspell: enable)
It includes various functionalities such as 2D and 3D digital image processing, visualization, augmented reality and medical interaction simulation. It runs on Microsoft Windows and Linux, is written in C++, and features rapid interface design using XML files. It is freely available under the LGPL.
Sight is mainly developed by the Surgical Data Sciences Team of IRCAD France, where it is used everyday to develop innovative applications for the operating room and medical research centers.
Many tutorials and examples, which can help you to learn smoothly how to use Sight, are located in the
tutorials
and examples
directories.
Detailed steps are described here.
Features
- 2D/3D visualization of medical images, meshes, and many widgets.
- Import / export medical data from various formats (DICOM, VTK, ...) and sources (files, devices, PACS, ...).
- Playing, recording, processing videos (webcams, network streams, Intel RealSense devices, ...).
- Easy GUI configuration and customization (XML description and stylesheets support).
- Timeline, allowing to store various data (video, matrices, markers, etc...) and synchronize these data across time.
- Mono and stereo camera calibration,
- ArUco optical markers tracking,
- openIGTLink support through client and server services,
- Advanced memory management to support large data. Unused data can be offloaded to disk, saving memory for foreground tasks.
- Work session or any part of it, can be saved and restored on disk. The data itself can be encrypted using AES256 to ensure a high level of security and privacy
Hardware / Operating System / Compiler support
Sight is written in standard C++17 and use CMake as its build system, which means that Sight should at least compile on any operating system that provide support for a decent C++17 compiler, CMake, AND Sight's dependencies (see Install for a list of dependencies for Linux platform). However, we currently have access to a limited set of hardware/OS/compiler combinations where the code is actually tested on a regular basis.
Such combination includes:
- Debian 11 stable on AMD64 with GCC 10.2.1
- Ubuntu 21.04 on AMD64 with GCC 10.3.0 or CLang 12
- Microsoft Windows 10 on AMD64 with VisualStudio 2019
If your platform is not listed, that doesn't mean Sight will not work, just we cannot guarantee that it is well tested. If you are on this kind of platform and are able to build and use Sight, feel free to share with us your success !
We use some fine tuned compiler flags (like
/arch:AVX2
) to optimize and generate code specifically for CPUs that were released around 2013 and later. It means, if your CPU is too old, Sight will crash at runtime because some CPU instructions are not implemented. In such situation, you can modify hidden cmake variableSIGHT_ARCH
at configuring time or modify the default compiler flag directly in Sight CMake code.
Applications
SightViewer
SightViewer is a full featured medical image and mesh viewer with advanced rendering features such as volume rendering. It supports most medical image formats, and can also retrieve DICOM files from a PACS. It demonstrates many useful features of Sight.
DicomXplorer
DicomXplorer is a simple medical image viewer that can connect to a PACS to retrieve DICOM data. It supports CT-scan and MRI images.
SightCalibrator
SightCalibrator is a user-friendly application to calibrate mono and stereo cameras. This software is a must-have since camera calibration is a mandatory step in any AR application.
Install
See detailed install instructions for Windows and Linux.
Documentation
Support
Please note that our GitLab is currently only available in read-only access for external developers and users. This is a restriction because of the licensing model of GitLab. Since we use an EE version, we would be forced to pay for every community user, and unfortunately we cannot afford it. This licensing model might change in the future https://gitlab.com/gitlab-org/gitlab-ee/issues/4382 though.
Until then, we gently ask our community users to use our GitHub mirror to report any issues or propose contributions.
You can also get live community support on the gitter chat room.