Coder Social home page Coder Social logo

jilei-hao / itksnap Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pyushkevich/itksnap

0.0 0.0 0.0 14.45 MB

ITK-SNAP medical image segmentation tool

Home Page: https://sourceforge.net/p/itk-snap/src/ci/master/tree/

License: GNU General Public License v3.0

C++ 94.02% C 0.26% HTML 2.75% CSS 0.05% JavaScript 0.63% Shell 0.26% CMake 1.94% AppleScript 0.03% Dockerfile 0.06%

itksnap's Introduction

ITK-SNAP README

Welcome!

Thank you for your interest in ITK-SNAP! By using this program you are joining an ever growing community of users from research labs around the world. ITK-SNAP is an open-source software application made possible by the committment of dedicated developers, who often make contributions on a volunteer basis. Original development of ITK-SNAP was supported by the U.S. National Library of Medicine through PO 467-MZ-202446-1. Subsequent development of ITK-SNAP version 2.0 has been supported by the U.S. National Institute of Biomedical Imaging and BioEngineering and the NIH Blueprint for Neuroscience through grant 1 R03 EB008200-01. Development of ITK-SNAP versions 3.0 - 3.6 has been supported by the NIH grant 1R01 EB014346.

ITK-SNAP is the result of over 15 years of work by many researchers, software engineers and students. Please visit the Credits page to learn about the team that made ITK-SNAP possible!

Please remember to cite ITK-SNAP

Citations in published work is the best way for us to gauge ITK-SNAP impact. As of the Fall of 2016, ITK-SNAP has been cited by over 2000 papers. If you use ITK-SNAP for a publication, please cite the paper below.

  • Paul A. Yushkevich, Joseph Piven, Heather Cody Hazlett, Rachel Gimpel Smith, Sean Ho, James C. Gee, and Guido Gerig. User-guided 3D active contour segmentation of anatomical structures: Significantly improved efficiency and reliability. Neuroimage. 2006 Jul 1; 31(3):1116-28.

Getting Started

ITK-SNAP was designed for ease of use. There are several resources to get started with it.

  • If you downloaded ITK-SNAP as a binary executable from itksnap.org, you can get started by reading the online tutorials.
  • If you downloaded ITK-SNAP source code, please follow these online instructions to compile and build ITK-SNAP.
  • You will need a 3D image to use this software. Images with which ITK-SNAP is known to work are found on the ITK-SNAP download page
  • There are also materials (images, exercises, video) from training courses available on the documentation page.

Asking Questions

If you have a question about ITK-SNAP, here are the places where you may find an answer. Keep in mind that since ITK-SNAP in not a commercial product, it may take some time for an answer to arrive.

  • If you have an question about how to use SNAP or why it's not doing what it should, post in on the ITK-SNAP Users' List.
  • If you have a technical question or a questing related to ITK, join the ITK Users' Mailing List and post your question there.

Get Involved!

Your participation as a user, developer or sponsor is essential to ensuring a bright future for ITK-SNAP. There are many ways in which you can contribute to the stability and quality of this program:

itksnap's People

Contributors

a-a-danilov avatar dzenanz avatar ghisvail avatar jilei-hao avatar jlasserv avatar jmargeta avatar kallitokaco avatar octaviansoldea avatar pyushkevich avatar thewtex avatar vicory avatar

itksnap's Issues

Orientation inconsistency and typo in preference dialog and popup window

For Radiological Convention, patient is lying supine (face up) in a hospital bed, and you are standing at the foot of the bed like doctors in the old TV shows with the paper charts.

Currently Radiological Convention in snap Preference Dialog is showing Axial from top of the patient, which is incorrect.

Image

In the Axial view, patient's nose should pointing upward.

Add Orientation Code to Mesh Export

Description

Add Orientation Code, e.g. RAS, LPS to the header of the mesh file exported by ITK-SNAP.

Questions

  • Is SNAP converting everything to RAS orientation?
  • Is mesh exporting converting everything to RAS?

Echo Cartesian Dicom Reorientation fix

Reorient Image from LPS to LPI changed relative position between labels. Currently the dicom reader reorients Echo Cartesian Dicom from LPI to LPS, but it creates a mirror image with flipped A-P direction. We need to change the reorientation target to LAS so the A-P direction is not flipped.

Requirement

Change reorientation from LPI to LAS instead of LPS.

Mesh Loading Issues

Occasional Mesh File Dropping Failure

After dropping, the mesh does not get immediately rendered

Mesh dropped to current time point loaded to first time point

Toggle for 3D Color Bar

Requirement

  • Add a toggle in ViewPanel3D for the color bar display. Default to on for standalone meshes, off for label mesh.

c3d tiled 4d image dropping caused seg fault

Issue only appeared for one c3d generated 4d image using -tile command, and only appeared when dropping image loading.
Todo:

  • Test if any logic specific to image dropping caused the crash
  • See if it related to c3d image generation using -tile

Segmentation Color Legend Issues

Multiple Color Legend Changes

  • Title of the color legend does not change when switching from external mesh to seg mesh
  • Label color legend display incorrectly when skipping certain numbers
  • Separate label and non-label color legend visibility

Add Deformation Grid for 2D warp image

Description

Currently snap only support 3d warp image. Add support for 2d warp image so that when choosing deformation grid mode for displaying 2d vector image, the deformation grid will show up.

Interpolation Mode Preference Issue in ITK-SNAP 4.0 Alpha-3

Orignal Post: https://groups.google.com/g/itksnap-users/c/Ndg7UfpVq_U/m/JIF7ZBEeAAAJ?utm_medium=email&utm_source=footer

Pre-vtk9 logic:

GenericSliceRenderer::Texture *
GenericSliceRenderer
::GetTextureForLayer(ImageWrapperBase *layer)
{
  const char *user_data_ids[] = {
    "OpenGLTexture[0]",
    "OpenGLTexture[1]",
    "OpenGLTexture[2]"
  };
  const char *user_data_id = user_data_ids[m_Model->GetId()];

  // If layer uninitialized, return NULL
  if(!layer->IsInitialized())
    return NULL;

  // Retrieve the texture
  SmartPtr<Texture> tex = static_cast<Texture *>(layer->GetUserData(user_data_id));

  // Get the image that should be associated with the texture
  Texture::ImageType *slice = layer->GetDisplaySlice(m_Model->GetId()).GetPointer();

  // If the texture does not exist - or if the image has changed for some reason, update it
  if(!tex || tex->GetImage() != slice)
    {
    tex = Texture::New();
    tex->SetDepth(4, GL_RGBA);
    tex->SetImage(slice);

    layer->SetUserData(user_data_id, tex.GetPointer());
    }

  // Configure the texture parameters
  const GlobalDisplaySettings *gds = m_Model->GetParentUI()->GetGlobalDisplaySettings();
  GLint imode =
      (gds->GetGreyInterpolationMode() == GlobalDisplaySettings::LINEAR)
      ? GL_LINEAR : GL_NEAREST;
  tex->SetInterpolation(imode);

  // Set the mip-mapping behaviour depending on whether the image wrapper is rendering
  // in image space or in display space
  tex->SetMipMapping(layer->IsSlicingOrthogonal());

  return tex;
}

Polygon tool paint incorrectly when tracing on an iPad mirror

Original User Report

Hi, I’ve found an issue with the polygon tool where after a bunch of slices in a row of drawing complex polygons the polygon tool will start making a box of segmentation around the edge of the polygon, rather than following the polygon. I’m attaching her a photo of the polygon I drew (this was the 7th slice I had done in this window), and then when I do red over all it makes a red rectangle around the outer edges of the polygon. When I do clear over all with the inverse polygon, it clears everything in a rectangle on the outer edges of the polygon tool (but not everything outside the polygon). It stops if you do a smaller, less complex polygon tool. Typically if I quit ITK-Snap and restart it goes away, but I’ve had it happen multiple times.

I have not been able to consistently reproduce it either, but it is definitely a common issue I’ve had multiple times. I have been using version 4.0.0-alpha.4 on a Mac. That image is from a workspace, so I can send you the workspace here, but I’ve found it on multiple different images. It only happens after using the software for a while. Regarding the number of vertices, I have absolutely no idea - I’m using the continuous polygon tool and tracing with an apple pencil (as I mirror ITK-SNAP to an ipad), so its a lot of vertices.

polygon drawn clear out box red box

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.