Code Monkey home page Code Monkey logo

deformable's Introduction

Medical Image Registration ToolKit

Linux AppImage   Docker Image   Travis CI status   AppVeyor status   Join the chat at https://gitter.im/BioMedIA/MIRTK

The Medical Image Registration ToolKit (MIRTK) is a research-focused image processing toolkit, developed at the BioMedIA research group. It provides a collection of libraries and command-line tools to assist in processing and analyzing imaging data.

See the online documentation for more information.

Installation

See the installation instructions for a step-by-step guide on how to install the MIRTK.

License

The MIRTK is distributed under the terms of the Apache License Version 2. See the accompanying license file for details. The license enables usage of MIRTK in both commercial and non-commercial applications, without restrictions on the licensing applied to the combined work.

This directory includes source files and references to Git submodule repositories grouped and distributed under the GitHub MIRTK Organization, whose source files are covered by their own respective license terms. These licenses are compatible with the MIRTK license. See the download page for details.

Citation and acknowledgements

In the event you found the MIRTK useful, please consider giving appropriate credit to the software.

See the publications list for suitable citations.

deformable's People

Contributors

amakropoulos avatar aschuh-hf avatar schuhschuh avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

deformable's Issues

VTK 9 merge-surfaces wrong divider

With VTK 9, not VTK 8, merge-surfaces doesn't create the divider correctly. The cutting plane is in the correct location but the divider polygon is in the wrong spot (the vertices in the left hemisphere away from the cutting plane). See screen shots.
divider_plane
divider_plane_correct
divider_plane_sagittal

Assertion error in deform-mesh

I'm getting this error in deform-mesh:

Assertion pos2 == extrema.end() || (pos2+1 != extrema.end() && !pos2->min && pos2->idx < (pos2+1)->idx && (pos2+1)->min) failed in /home/addo/dev/MCRIBS/MIRTK/MIRTK/Packages/Deformable/src/ImageEdgeDistance.cc line 1791: pos2 is a valid edge interval start

What should I be looking for to debug it?

Thanks.

Fast collision

In the first surface that is created, the “cerebrum” surfaces, if you have fast collision OFF it prevents the surface from having the high curvature it needs to penetrate into deep sulci. In addition, there are some cases where shocks form in the surface (a shock is where you have a V shape in a surface and the faces at the V apex cross over) and you get this spike that stays outside the brain because the collision detection prevents the vertices at the shock moving. When fast collision is turned ON for the cerebrum surface it doesn’t have this issue and it penetrates correctly.

For the “white” and “pial” surfaces you do need to have the fast collision OFF to prevent those errors you are having. There do seem to still be shocks forming for the “pial” surfaces which is why you get these “pointy” regions of pial surface at the fundi of sulci sometimes. I might need to alter the parameters to make the outward movement of the pial surface change so these shocks don’t form. It is possible that you are getting better results with fast collision off because it has fewer restrictions on curvature and overlapping faces. But the problem is that it causes some crashes due to said overlapping faces.

Any ideas for changing the parameters to prevent shocks?

White and pial vertices/faces not in correspondence

Using the default recon-neonatal-cortex script with default options except for -ensure-pial-is-outside-white-surface and the white and pial surfaces are not in correspondence. The surfaces are in the correct locations but face configuration differs between white and pial. This happens both in the dual-hemisphere and split surfaces. Any thoughts? Thank you in advance.

surface out of bounds of image error

I'm getting a (rare) error where there is a cerebrum hull surface outside the bounds of the corpus callosum mask. I was able to fix it by padding the regions.nii.gz image slightly by a few voxels. I have put some code into MIRTK and Deformable to fix it. I have attached a patch file that contains the fix.
padregions.patch.txt

Error: Surface outside bounds of input image: .../temp/corpus-callosum-mask.nii.gz
Traceback (most recent call last):
File "/opt/MCRIBS/bin/../MIRTK/MIRTK-install/lib/tools/recon-neonatal-cortex", line 916, in
use_fast_collision = args.fastcollision)
File "/opt/MCRIBS/bin/../MIRTK/MIRTK-install/lib/tools/recon-neonatal-cortex", line 550, in recon_neonatal_cortex
corpus_callosum_mask=corpus_callosum_mask, temp=temp_dir, use_fast_collision=use_fast_collision)
File "/opt/MCRIBS/MIRTK/MIRTK-install/lib/python/mirtk/deformable/neonatal_cortex.py", line 1083, in recon_cortical_surface
out1 = push_output(stack, add_corpus_callosum_mask(hull, mask=corpus_callosum_mask, oname=out1))
File "/opt/MCRIBS/MIRTK/MIRTK-install/lib/python/mirtk/deformable/neonatal_cortex.py", line 558, in add_corpus_callosum_mask
project_mask(iname, oname, mask, name='ImplicitSurfaceFillMask', dilation=20, invert=True)
File "/opt/MCRIBS/MIRTK/MIRTK-install/lib/python/mirtk/deformable/neonatal_cortex.py", line 447, in project_mask
opts={'labels': mask, 'fill': fill, 'dilation-radius': dilation, 'name': name})
File "/opt/MCRIBS/MIRTK/MIRTK-install/lib/python/mirtk/deformable/neonatal_cortex.py", line 167, in run
_run(tool, args=args, opts=opts, showcmd=showcmd, threads=threads)
File "/opt/MCRIBS/MIRTK/MIRTK-install/lib/python/mirtk/subprocess.py", line 296, in run
raise e

Merged surface is non-closed, no. of boundaries

I'm having an issue with the reconstruction. I end up with a non-closed surface and all the boundary edges are on the midline where the two cerebral surfaces connect (see attached for the regions.nii.gz file with the cerebrum-1.vtp surface overlaid and the boundary edges in white dots). I'm not sure how to address this?

Thanks in advance.
surface_boundary_edges

Error compiling Deformable module without TBB

I am trying to use "calculate-surface-spectrum" which is requiring that "Numerics module was built with ARPACK and UMFPACK". (on Ununtu 14.04)

However when trying to build and install mirtk with above options, running into below issues.

make[2]: *** [Packages/Deformable/src/CMakeFiles/LibDeformable.dir/ImageEdgeDistance.cc.o] Error 1
make[1]: *** [Packages/Deformable/src/CMakeFiles/LibDeformable.dir/all] Error 2

.....
request for member ‘insert’ in ‘extrema’, which is of non-class type ‘mirtk::ImageEdgeDistanceUtils::ComputeDistances::Extrema {aka int}’
r = extrema.insert(r, mid);
......

ImageEdgeDistance.cc:1355:28: note: mismatched types ‘_Tp [_Nm]’ and ‘int’
for (auto &&extremum : extrema) {

Can you please assist.

DeprecationWarning: SafeConfigParser.readfp

/tmp/.mount_mirtk4CoWii/usr/lib/tools/recon-neonatal-cortex:67: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
  config  = SafeConfigParser(defaults={'work_dir': work_dir, 'temp_dir': temp_dir})
/tmp/.mount_mirtk4CoWii/usr/lib/tools/recon-neonatal-cortex:862: DeprecationWarning: This method will be removed in future versions.  Use 'parser.read_file()' instead.
  config.readfp(config_file)

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.