3D medical imaging reconstruction software

Related tags

Scienceinvesalius3
Overview

InVesalius

InVesalius generates 3D medical imaging reconstructions based on a sequence of 2D DICOM files acquired with CT or MRI equipments. InVesalius is internationalized (currently available in English, Portuguese, French, German, Spanish, Catalan, Romanian, Korean, Italian and Czech), multi-platform (GNU Linux, Windows and MacOS) and provides several tools:

  • DICOM-support including: (a) ACR-NEMA version 1 and 2; (b) DICOM version 3.0 (including various encodings of JPEG -lossless and lossy-, RLE)
  • Support to Analyze files
  • Support to BMP, PNG, JPEG and TIF files
  • Image manipulation facilities (zoom, pan, rotation, brightness/contrast, etc)
  • Segmentation based on 2D slices
  • Pre-defined threshold ranges according to tissue of interest
  • Segmentation based on watershed
  • Edition tools (similar to Paint Brush) based on 2D slices
  • Linear and angular measurement tool
  • Volume reorientation tool
  • 3D surface creation
  • 3D surface volume measurement
  • 3D surface connectivity tools
  • 3D surface exportation (including: binary and ASCII STL, PLY, OBJ, VRML, Inventor)
  • High-quality volume rendering projection
  • Pre-defined volume rendering presets
  • Volume rendering crop plane
  • Picture exportation (including: BMP, TIFF, JPG, PostScript, POV-Ray)

Development

Comments
  • Add command line options for saving and exporting

    Add command line options for saving and exporting

    Hi. I changed app.py to support saving the project when importing and also for directly exporting to STL the surface generating using all the predefined presets for the masks. This allows to automatically generate the models from the images, without using the GUI. I thought it would be useful for other people too, that's why I'm creating this PR.

    I also created a Dockerfile, so the environment can be easily replicated in any computer with Docker.

    Any suggestion regarding refactorings or the API for the command line is welcome :smile:

    btw, is there a way to use this command line options without opening a GUI? So it can be used through SSH or Docker without a display being set.

    opened by bryant1410 36
  • Failed to execute script app

    Failed to execute script app

    I tried to install Invesalius on Windows. After the setup had finished, I was able to start the program once. However, after closing it, I was not able to re-open it again. Whenever I tried to, a message saying "Failed to execute script app" pops up. Even reinstalling the program did not solve the issue. I even tried different versions of the program - the error remains. I couldn't find out anything else about it. I am using Windows 10.

    opened by simon-gunacker 35
  • Problem launching on Apple Silicon (Macbook Air M1)

    Problem launching on Apple Silicon (Macbook Air M1)

    Hi I recently downloaded and installed the latest release for ARM64, but it only shows the startup screen and then nothing happens. I even tried to install it with homebrew but i get a lot of error messages during the installation steps and Im not a programmer so i dont know how to solve the errormessages. Does anyone else got these problems with an apple silicon computer. Has anyone installed it successfully?

    Regards

    opened by ZerBas 24
  • are there some x86 packages?

    are there some x86 packages?

    hi, @tfmoraes ,

    can you support some x86 packages on windows, the Running InVesalius 3 in Windows website just x64...

    i tried to use pip(or google...) but a lot of packages can not found....

    think you.

    opened by zdpdev 16
  • Volume panel do not refresh or enable interaction after surface creation

    Volume panel do not refresh or enable interaction after surface creation

    Hi guys,

    I'm using Windows 10 x64 without with an Intel graphics card. I'm running InVesalius master branch from the source code and installed the most recent libraries as shown in the wiki page. After I import a DICOM exam, create the surface using the threshold selection, the surface appears in the Volume panel but does not allow any mouse interaction or does not update with the CrossMove. Also, when I maximize it, it does not update the view.

    In principle no errors in the command prompt, just a bunch of Deprecation Warnings.

    What might be causing it? @tfmoraes recommended to update the Graphics card driver, but it is already updated and the problem still remains.

    Thanks!

    bug 
    opened by vhosouza 13
  • Can't import specific dicom files

    Can't import specific dicom files

    I am using InVesalius 3.1 for Windows, and some dicom files work, and some don't. When I hit 'OK', it crashes and says InVesalius not responding. Any help would be greatly appreciated. I will link an example data set that doesn't work, from OSF: http://www.mediafire.com/file/5emvhl8mjl466gm/osfstorage-archive+%2821%29.zip

    opened by astandarduser 13
  • No module named 'wx'

    No module named 'wx'

    I followed the instructions, tried both with the activated my_env env and without, but getting this error.

    Trying pip install wx gives this:

    ERROR: Could not find a version that satisfies the requirement wx (from versions: none)
    ERROR: No matching distribution found for wx
    

    Linux Mint 20.2 (Ubuntu 20.04) python --version: Python 3.8.8

    opened by ghost 11
  • Program hangs indefinitely after importing NIFTI file with 'Import medical images'

    Program hangs indefinitely after importing NIFTI file with 'Import medical images'

    System: Ubuntu LTS 16.04 InVesalius 3.1.1

    Steps to reproduce:

    • Open InVesalius
    • Select 'Import medical images...' from left-side panel
    • Select a folder with .nii file that was used in NexStim navigation ssytem --> Error message appears: "There are no DICOM files in the selected folder." --> InVesalius hangs with window "Loading DICOM files"

    This message cannot be dismissed, although pressing Cancel seems to refresh the sceen. Pressing 'X' on top left of window disables the Cancel button. Attempting to close InVesalius by right clicking the task bar icon and selecting 'Close' displays a confirmation dialog, but nothing happens after that. Attempting to kill the program with '$ kill ' gets rid of the process when viewed with '$ ps', but does nothing to the program window.

    The only way to close the window is to use 'ps' to find the line 'python app.py' and kill that.

    opened by juusokorhonen 11
  • windows version, after import, panels not refresh

    windows version, after import, panels not refresh

    First thanks for sharing! I follow steps here https://github.com/invesalius/invesalius3/wiki/Running-InVesalius-3-in-Windows

    used: python3.7 Visual Studio (2017 community edition) the most recent commit

    After run python app.py, everything was ok. I can open DICOM, after click "import", the 4 panels show up, but without images. I have to use mouse to click the scroll to make the panel show images.

    The same commit on Ubuntu works fine and does not have this issue.

    Could you please help on this ? Thanks.

    opened by mit10000 11
  • Bitmap import - image squashed

    Bitmap import - image squashed

    Greetings

    i have a slice set that is 2500x1400 at 47u per pixel

    when i import it gives me a wierd squashed image in one of the axis

    can the software only import square images?

    opened by X3msnake 11
  • Problem in matching coordinates of imported surface to surface created in InVesalius

    Problem in matching coordinates of imported surface to surface created in InVesalius

    Hi guys,

    I'm having the following problem. I segmented the brain from the MRI of a subject and generated the polygonal mesh in a different combination of software. They all worked within the native MRI coordinate system.

    However, when I open the MRI and generate the head surface in InVesalius, and then import the segmented brain surface by clicking in the button in the lower left corner of the interface, the surface is rendered in a different coordinate than it should be. For example, it is outside and far from the head (while the segmented brain has to be inside the head surface generated in InVesalius).

    As far as I know, InVesalius follows the RAS+ coordinate system and all imported MRI/CT image when read as arrays goes through two coordinate transformations which are applied inside the module imagedata_utils.py in the method img2memmap in the following order:

    # data is the 3D array representing the image
    data = numpy.swapaxes(data, 0, 2)
    data = numpy.fliplr(data)
    
    

    This is a bit complicated to apply for a surface imported in the vtk polydata data. Do you have a straightforward solution? I thought about building the rotation matrices in vtk4x4Matrixand applying the transformations by vtkTransform, but in principle this would require a lot of thinking, manual working and testing.

    P.S. When I open the original MRI and segmented surface in ParaView, they both are correctly aligned. Below are prictures of paraview and InVesalius.

    Cheers!

    mri_invesalius mri_paraview

    bug question 
    opened by vhosouza 11
  • AttributeError: 'SingleImagePreview' object has no attribute 'get_vtk_mouse_position'

    AttributeError: 'SingleImagePreview' object has no attribute 'get_vtk_mouse_position'

    On starting git-latest invesalius3 I get the message (repeated):

    Traceback (most recent call last):
      File "/usr/lib/python3.10/site-packages/wx/lib/agw/aui/auibar.py", line 3510, in OnPaint
        self._art.DrawButton(dc, self, item, item_rect)
      File "/usr/lib/python3.10/site-packages/wx/lib/agw/aui/auibar.py", line 1008, in DrawButton
        bmp_rect, text_rect = self.GetToolsPosition(dc, item, rect)
      File "/usr/lib/python3.10/site-packages/wx/lib/agw/aui/auibar.py", line 1508, in GetToolsPosition
        bmp_rect = wx.Rect(bmp_x, bmp_y, bmp_width, bmp_height)
    TypeError: Rect(): arguments did not match any overloaded call:
      overload 1: too many arguments
      overload 2: argument 1 has unexpected type 'float'
      overload 3: argument 1 has unexpected type 'float'
      overload 4: argument 1 has unexpected type 'float'
      overload 5: argument 1 has unexpected type 'float'
      overload 6: argument 1 has unexpected type 'float'
    

    After loading DICOM images, I also get (repeated):

    Traceback (most recent call last):                                                                                                      
      File "/usr/lib/python3.10/site-packages/invesalius/gui/widgets/canvas_renderer.py", line 189, in OnMouseMove
        x, y = self.viewer.get_vtk_mouse_position()
    AttributeError: 'SingleImagePreview' object has no attribute 'get_vtk_mouse_position'
    

    The application still functions(!). I was able to import a set of CT images and export to stl, but there are gui drawing issues. I could not change any masks. Most left side wx widgets did not appear until I manually mouse-overed the expected spots to render them. Most likely I am using too new or too old of a dependency.

    My versions are:

    $ sudo emerge sci-libs/gdcm dev-python/pyvista dev-python/imageio sci-libs/scikit-image sci-libs/nibabel dev-python/pyacvd dev-python/wxpython -pv -1
    
    These are the packages that would be merged, in reverse order:
    
    Calculating dependencies  ...... done!
    [ebuild   R    ] dev-python/wxpython-4.0.7-r4:4.0::gentoo  USE="-test -webkit" PYTHON_TARGETS="python3_10 -python3_8 -python3_9" 0 KiB
    [ebuild   R   *] dev-python/pyacvd-9999::jakeogh  PYTHON_TARGETS="python3_10 -python3_8 -python3_9" 0 KiB
    [ebuild   R    ] sci-libs/nibabel-3.2.1::science  USE="-dicom -doc -test" PYTHON_TARGETS="python3_10 -python3_8 -python3_9" 0 KiB
    [ebuild   R    ] sci-libs/scikit-image-0.19.3-r1::gentoo  USE="-test" PYTHON_TARGETS="python3_10 -python3_11" 0 KiB
    [ebuild   R    ] dev-python/pyvista-0.36.1::jakeogh  PYTHON_SINGLE_TARGET="python3_10 -python3_9 (-python3_8%)" 0 KiB
    [ebuild   R    ] sci-libs/gdcm-3.0.20::jakeogh  USE="python vtk -doc -test" PYTHON_SINGLE_TARGET="python3_10 -python3_9" 0 KiB
    [ebuild   R    ] dev-python/imageio-2.23.0-r1::gentoo  USE="-test" PYTHON_TARGETS="python3_10 -python3_11" 0 KiB
    
    

    To get the above results, I had to make a minor change:

    diff --git a/invesalius/reader/dicom_reader.py b/invesalius/reader/dicom_reader.py
    index b2d6514b..69d53e9d 100644
    --- a/invesalius/reader/dicom_reader.py
    +++ b/invesalius/reader/dicom_reader.py
    @@ -25,8 +25,8 @@ from multiprocessing import cpu_count
     import gdcm
     
     # Not showing GDCM warning and debug messages
    -gdcm.Trace_DebugOff()
    -gdcm.Trace_WarningOff()
    +gdcm.Trace.DebugOff()
    +gdcm.Trace.WarningOff()
     
     import glob
     import plistlib
    

    Using python 3.10.9

    It's user error on my end, attempting to create an ebuild for gentoo.

    opened by jakeogh 1
  • How to convert invesalius3 to Exe on windows by using pyinstaller ?

    How to convert invesalius3 to Exe on windows by using pyinstaller ?

    I want to convert the invesalius3 python script to execute program on windows by using pyinstaller. But the compiled exe always flashed and crashed. Maybe you can provide the configure file to convert python to exe.

    opened by cxl2253 0
  • Unable to connect Fastrack

    Unable to connect Fastrack

    Hi I am unable to connect the Fastrack tracker. When I try it prompts me to choose the Com Port, but there it displays me no options and says the tracker cannot connect. Is there a fix for this . I am using the latest release of the software.

    opened by sn0gl0be 9
  • Problem with MRIs loading, selecting fiducials and creating markers with invesalius3 on mac

    Problem with MRIs loading, selecting fiducials and creating markers with invesalius3 on mac

    The loading of the resonance happens in a strange way, I attach screen. The software does not allow me to select fiducials and markers on the 3D surface. And if I select them on the sections sometimes the point doesn't match the right position. Also I cannot run it with python or python3 I have to run it necessarily with pythonw, why?

    Schermata 2022-11-08 alle 17 20 44 Schermata 2022-11-08 alle 17 04 11
    opened by giupier95 6
Releases(v3.1.99998)
SCICO is a Python package for solving the inverse problems that arise in scientific imaging applications.

Scientific Computational Imaging COde (SCICO) SCICO is a Python package for solving the inverse problems that arise in scientific imaging applications

Los Alamos National Laboratory 37 Dec 21, 2022
PennyLane is a cross-platform Python library for differentiable programming of quantum computers.

PennyLane is a cross-platform Python library for differentiable programming of quantum computers. Train a quantum computer the same way as a neural network.

PennyLaneAI 1.6k Jan 04, 2023
A modular single-molecule analysis interface

MOSAIC: A modular single-molecule analysis interface MOSAIC is a single molecule analysis toolbox that automatically decodes multi-state nanopore data

National Institute of Standards and Technology 35 Dec 13, 2022
3D medical imaging reconstruction software

InVesalius InVesalius generates 3D medical imaging reconstructions based on a sequence of 2D DICOM files acquired with CT or MRI equipments. InVesaliu

443 Jan 01, 2023
A logical, reasonably standardized, but flexible project structure for doing and sharing data science work.

Cookiecutter Data Science A logical, reasonably standardized, but flexible project structure for doing and sharing data science work. Project homepage

Jon C Cline 0 Sep 05, 2021
Kedro is an open-source Python framework for creating reproducible, maintainable and modular data science code

A Python framework for creating reproducible, maintainable and modular data science code.

QuantumBlack Labs 7.9k Jan 01, 2023
Datamol is a python library to work with molecules

Datamol is a python library to work with molecules. It's a layer built on top of RDKit and aims to be as light as possible.

datamol 276 Dec 19, 2022
Probabilistic Programming in Python: Bayesian Modeling and Probabilistic Machine Learning with Aesara

PyMC3 is a Python package for Bayesian statistical modeling and Probabilistic Machine Learning focusing on advanced Markov chain Monte Carlo (MCMC) an

PyMC 7.2k Dec 30, 2022
ckan 3.6k Dec 27, 2022
Wikidata scholarly profiles

Scholia is a python package and webapp for interaction with scholarly information in Wikidata. Webapp As a webapp, it currently runs from Wikimedia To

Finn Årup Nielsen 180 Dec 28, 2022
artisan: visual scope for coffee roasters

Artisan Visual scope for coffee roasters WARNING: pre-release builds may not work. Use at your own risk. Summary Artisan is a software that helps coff

Artisan – Visual Scope for Coffee Roasters 705 Jan 05, 2023
Program that estimates antiderivatives utilising Maclaurin series.

AntiderivativeEstimator Program that estimates antiderivatives utilising Maclaurin series. Setup: Needs Python 3 and Git installed and added to PATH.

James Watson 3 Aug 04, 2021
Validated, scalable, community developed variant calling, RNA-seq and small RNA analysis

Validated, scalable, community developed variant calling, RNA-seq and small RNA analysis. You write a high level configuration file specifying your in

Blue Collar Bioinformatics 915 Dec 29, 2022
Graphic notes on Gilbert Strang's "Linear Algebra for Everyone"

Graphic notes on Gilbert Strang's "Linear Algebra for Everyone"

Kenji Hiranabe 3.2k Jan 08, 2023
Algorithms covered in the Bioinformatics Course part of the Cambridge Computer Science Tripos

Bioinformatics This is a repository of all the algorithms covered in the Bioinformatics Course part of the Cambridge Computer Science Tripos Algorithm

16 Jun 30, 2022
Incubator for useful bioinformatics code, primarily in Python and R

Collection of useful code related to biological analysis. Much of this is discussed with examples at Blue collar bioinformatics. All code, images and

Brad Chapman 560 Dec 24, 2022
Float2Binary - A simple python class which finds the binary representation of a floating-point number.

Float2Binary A simple python class which finds the binary representation of a floating-point number. You can find a class in IEEE754.py file with the

Bora Canbula 3 Dec 14, 2021
Animation engine for explanatory math videos

Manim is an engine for precise programatic animations, designed for creating explanatory math videos. Note, there are two versions of manim. This repo

Grant Sanderson 48.9k Jan 03, 2023
Open Delmic Microscope Software

Odemis Odemis (Open Delmic Microscope Software) is the open-source microscopy software of Delmic B.V. Odemis is used for controlling microscopes of De

Delmic 32 Dec 14, 2022
AnuGA for the simulation of the shallow water equation

ANUGA Contents ANUGA What is ANUGA? Installation Documentation and Help Mailing Lists Web sites Latest source code Bug reports Developer information L

Geoscience Australia 147 Dec 14, 2022