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)
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
Data intensive science for everyone.

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

Galaxy Project 1k Jan 08, 2023
🍊 :bar_chart: :bulb: Orange: Interactive data analysis

Orange Data Mining Orange is a data mining and visualization toolbox for novice and expert alike. To explore data with Orange, one requires no program

Bioinformatics Laboratory 3.9k Jan 05, 2023
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
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
A framework for feature exploration in Data Science

Beehive A framework for feature exploration in Data Science Background What do we do when we finish one episode of feature exploration in a jupyter no

Steven IJ 1 Jan 03, 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
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
A flexible package manager that supports multiple versions, configurations, platforms, and compilers.

Spack Spack is a multi-platform package manager that builds and installs multiple versions and configurations of software. It works on Linux, macOS, a

Spack 3.1k Dec 31, 2022
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
Efficient Python Tricks and Tools for Data Scientists

Why efficient Python? Because using Python more efficiently will make your code more readable and run more efficiently.

Khuyen Tran 944 Dec 28, 2022
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
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

6.4k Jan 02, 2023
CS 506 - Computational Tools for Data Science

CS 506 - Computational Tools for Data Science Code, slides, and notes for Boston University CS506 Fall 2021 The Final Project Repository can be found

Lance Galletti 14 Mar 23, 2022
Mathics is a general-purpose computer algebra system (CAS). It is an open-source alternative to Mathematica

Mathics is a general-purpose computer algebra system (CAS). It is an open-source alternative to Mathematica. It is free both as in "free beer" and as in "freedom".

Mathics 535 Jan 04, 2023
A simple computer program made with Python on the brachistochrone curve.

Brachistochrone-curve This is a simple computer program made with Python on the brachistochrone curve. I decided to write it after a physics lesson on

Diego Romeo 1 Dec 16, 2021
OPEM (Open Source PEM Fuel Cell Simulation Tool)

Table of contents What is PEM? Overview Installation Usage Executable Library Telegram Bot Try OPEM in Your Browser! MATLAB Issues & Bug Reports Contr

ECSIM 133 Jan 04, 2023
Veusz scientific plotting application

Veusz 3.3.1 Veusz is a scientific plotting package. It is designed to produce publication-ready PDF or SVG output. Graphs are built-up by combining pl

Veusz 613 Dec 16, 2022
An interactive explorer for single-cell transcriptomics data

an interactive explorer for single-cell transcriptomics data cellxgene (pronounced "cell-by-gene") is an interactive data explorer for single-cell tra

Chan Zuckerberg Initiative 424 Dec 15, 2022
Doing bayesian data analysis - Python/PyMC3 versions of the programs described in Doing bayesian data analysis by John K. Kruschke

Doing_bayesian_data_analysis This repository contains the Python version of the R programs described in the great book Doing bayesian data analysis (f

Osvaldo Martin 851 Dec 27, 2022