Coder Social home page Coder Social logo

greedy's Introduction

greedy's People

Contributors

dzenanz avatar jilei-hao avatar pyushkevich avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

greedy's Issues

ccmake issue when building Greedy on MacOS

Hi,

I have tried to install greedy under MacOS. I followed the installation instruction and installed CMake 3.23.2 and ITK 5.2.1. When I tried to run ccmake for building greedy, I got ‘ zsh: command not found: ccmake’.

Can anyone help me? If you need any further information, please tell me. Thanks in advance!

Best,
Amy

Reslice mode segfaults when moving image voxel grid is too large

Hi Paul,

Was really hoping to register using my full resolution data, but there seems to be a scaling issue.

ITK version: 4.13.2
Greedy commit: abef638
I'm using an old commit. I tried a fresh pull but had installation issues and did not have time to trouble shoot them. Thought this issue might persist for newer versions and should document it.

Screen Shot 2020-12-16 at 1 02 35 AM

The reslice works with a skip sampled version of the moving image mov_ss = mov[::2, ::2, ::4]:

Screen Shot 2020-12-16 at 1 06 11 AM

I believe this issue also affects registrations. When using mov.nrrd as the moving image and 2 scale levels, the first scale level runs fine (image is smaller by a factor of 8 voxels), but seg faults when moving up to the full resolution iterations.

Can it work on Sinogram level for motion correction?

Hello all,

I tried to use greedy for image registration on sinogram level. my sinogram size is 520 x 50 x 11559 x 35 (int8). I configure the affine and deformable registration. I am following the quick start instruction of Greedy. and greedy can run for the lowest and intermediate resolution. But when working on full resolution, the greedy will be interrupted after finishing the intermediate resolution iterations (on Affine mode, no affine.mat output).

I am considering whether it is the hardware or the software restriction. May I ask does any hard restriction on the application level?

Additionally my hardware is Xeon Gold 6242R with 768 GB RAM.

Best regards
Wenhong Lan

What are the default parameters for registration in itk snap 3.6.0?

I did registration of 3d images in ITK-SNAP and it was great. Now I want to reproduce it using command line tool.

What parameters should I pass to get the same result?

I use the following settings:

  • transformation model: rigid
  • metric: mutual information
  • multi-resolution schedule: coarsest level 16x, finest level 8x

image

Non-deterministic output transformations on Linux

Hi,

I've identified an issue with output transformations calculated by Greedy on Linux. I run it several times to register data using affine options with the command below and received different affine transformations on every run:

greedy -i /path/test_data/moving.nii.gz /path/test_data/reference.nii.gz -o /path/test_output/SSD_100x50x20/affine.mat -n 100x50x20 -d 3 -m SSD -ia-image-centers -a -dof 12

The following transformation matrices were saved on two separate runs on Linux for the exact same input data and Greedy parameters:

1.02348 0.000315488 0.00602789 -1.52572
0.00256797 0.994491 0.00338622 -1.88332
0.00062883 -0.00871956 0.797624 -44.4442
0 0 0 1

1.01814 0.00120815 0.00449941 -1.06076
-0.000651167 0.996294 0.0018094 -2.27074
0.00119741 -0.00765716 0.796436 -44.8874
0 0 0 1

The version of Greedy used for calculation:

Greedy Version 1.2.0
Release date: Jan 12, 2021
Compile date: Nov 23, 2021
GIT branch: itk5
GIT commit: 6488047
GIT commit date: 2021-10-22 14:16:34 -0400

I didn't find any random seeds/parameters in the source code of registration algorithms, so as far as I'm concerned all the results should be repeatable. Would you please investigate?

Building on Fedora

I'm unable to build greedy on Fedora 31.

InsightToolkit-vtk-devel Version: 4.13.1
Cmake Version: 3.14.5

$ cmake ../greedy -DITK_DIR=/usr/lib64/cmake/InsightToolkit/
-- GREEDY Version: 1.0.1 Released Mar 21, 2019
-- GIT Info:
--   Branch : master
--   SHA    : 3ed5a0dc480bf0ca3f850e6783208bae3aef570c
--   Date   : 2019-10-18 05:35:03 -0400
-- Configuring done
CMake Error at CMakeLists.txt:195 (ADD_EXECUTABLE):
  Target "greedy" links to target "GTest::GTest" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?
[...]

Then

$ make
[  5%] Building CXX object CMakeFiles/greedyapi.dir/src/lddmm_data.cxx.o
In file included from /usr/include/InsightToolkit/itkNumericTraits.h:51,
                 from /home/user/Downloads/greedy/src/lddmm_data.h:31,
                 from /home/user/Downloads/greedy/src/lddmm_data.cxx:27:
/usr/include/vxl/vcl/vcl_limits.h:11:5: warning: #warning "This header will be removed in future versions of VXL.  Use equivalent C++11 header instead. see: vxl/scripts/UseStandardHeaders.py" [-Wcpp]
   11 |   # warning "This header will be removed in future versions of VXL.  Use equivalent C++11 header instead. see: vxl/scripts/UseStandardHeaders.py"
      |     ^~~~~~~
/home/user/Downloads/greedy/src/lddmm_data.cxx: In instantiation of ‘static void LDDMMData::img_downsample(LDDMMData::ImageType*, LDDMMData::ImageType*, double) [with TFloat = float; unsigned int VDim = 2; LDDMMData::ImageType = itk::Image]’:
/home/user/Downloads/greedy/src/lddmm_data.cxx:2008:16:   required from here
/home/user/Downloads/greedy/src/lddmm_data.cxx:1622:37: error: ‘vcl_ceil’ was not declared in this scope
 1622 |     sz[i] = (unsigned long) vcl_ceil(src->GetBufferedRegion().GetSize()[i] / factor);
      |                             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/user/Downloads/greedy/src/lddmm_data.cxx: In instantiation of ‘static void LDDMMData::img_downsample(LDDMMData::ImageType*, LDDMMData::ImageType*, double) [with TFloat = float; unsigned int VDim = 3; LDDMMData::ImageType = itk::Image]’:
/home/user/Downloads/greedy/src/lddmm_data.cxx:2009:16:   required from here
/home/user/Downloads/greedy/src/lddmm_data.cxx:1622:37: error: ‘vcl_ceil’ was not declared in this scope
[...]

newest VTK cannot be found

When compiling greedy, it asked for VTK binary directory.
Following similar issue here, I installed VTK but now is giving this error:

From the VTK git repo I could not find IOCore or IOGeometry or the others. Could you suggest how to resolve this? Thank you!

Ubuntu system.

 GREEDY Version: 1.3.0-alpha Released Sep 28, 2022
 GIT Info:
   Branch : master
   SHA    : ee6a9efa12fea5fe9a746babc7c53b54ab49a1c2
   Date   : 2022-09-28 07:52:39 -0400
 CMake Error at CMakeLists.txt:66 (FIND_PACKAGE):
   Found package configuration file:

     /home/ubuntu/code/vtk/build/vtk-config.cmake

   but it set VTK_FOUND to FALSE so package "VTK" is considered to be NOT
   FOUND.  Reason given by package:

   Could not find the VTK package with the following required components:
   IOCore, IOGeometry, IOLegacy, IOPLY.

Error on using `-dof 7`

Trying rigid registration plus uniform scaling with the -dof 7 option. I get the error

ABORTING PROGRAM DUE TO RUNTIME EXCEPTION -- DOF parameter only accepts 6 and 12 as values

I am using #4e365d0 of the itk5 branch.

Greedy Issues

I am very interested in Greedy due to its speed and ability to use the mutual information cost functions which help for post-contrast scans where scalp and brain intensity can vary a lot from templates. We are dealing with huge clinical datasets and tools like FLIRT are robust but too constrained while tools like FNIRT do not use sensible cost functions for our use case.

  1. I am using Greedy on my M2 Mac as installed with ITKsnap
    Greedy Version 1.2.0
    Release date: Jan 12, 2021
    Compile date: Sep 28, 2023
    GIT branch: HEAD
    GIT commit: 9f1fcd8
    GIT commit date: 2022-01-07 06:22:51 -0500
  2. I am unable to build from source, this seems to be a common problem with C++ on the latest versions of MacOS, though I do not think this is involved with my issues
  3. I am working with a sample dataset that is anonymized and I have sent a link to your email.
  4. The sform and qform are already close, so one would expect -ia-identity would work, but this creates an error (IFLAG= -1 LINE SEARCH FAILED) and nonsense images, so I use -ia-image-centers
  5. With -ia-image-centers the results of the affine are very poor for this example. The new NIfTI image does not seem to inherit the SForm and QForm of the fixed image (e.g. origin is outside of volume, rather than at anterior commissure)
  6. The silent mode (V 0) is indeed silent for the affine stages, but still generates per iteration messages for the nonlinear stages.

Silent with mutual information cost function

fixed=template.nii.gz
moving=flair.nii.gz

greedy -V 0 -d 3 -a \
    -m NMI \
    -i $fixed $moving \
    -o affine.mat \
    -ia-image-centers  -n 100x50x10

greedy -V 0 -d 3 \
  -rf $fixed \
  -rm $moving affineOnly.nii.gz \
  -r affine.mat

greedy -V 0 -d 3 \
    -m WNCC 2x2x2 \
    -i $fixed $moving \
    -it affine.mat \
    -o warp.nii.gz \
    -oinv inverse_warp.nii.gz \
    -sv -n 100x50x10

greedy -V 0 -d 3 \
  -rf $fixed \
  -rm $moving resliced.nii.gz \
  -ri LABEL 0.2vox \
  -r warp.nii.gz affine.mat

Direct from quick start (verbose, default cost function)

fixed=template.nii.gz
moving=flair.nii.gz

greedy -d 3 -a \
    -m NCC 2x2x2 \
    -i $fixed $moving \
    -o affine.mat \
    -ia-image-centers -n 100x50x10

greedy -d 3 \
    -m NCC 2x2x2 \
    -i $fixed $moving \
    -it affine.mat \
    -o warp.nii.gz \
    -oinv inverse_warp.nii.gz \
    -n 100x50x10

greedy -d 3 \
    -rf $fixed  \
    -rm $moving resliced.nii.gz \
    -ri LABEL 0.2vox \
    -r warp.nii.gz affine.mat 

problem building (ITK configuration)

Hi there. I'm quite new to configuring with CMake, but I have followed the error messages and still don't seem to be getting a result here. After following the steps here https://greedy.readthedocs.io/en/latest/install.html ... I am still receiving these errors with configuring greedy

Screen Shot 2022-12-09 at 11 54 20 AM

Screen Shot 2022-12-09 at 11 54 31 AM

I have linked the directory with the ITKConfig.cmake file .... does it look like this error stemmed from the configuration/build of ITK ?

ccmake issue when building Greedy on Linux

Thanks for the terrific tool.

The binary version of greedy provided with the latest Linux release of ITK snap (Greedy Version 1.3.0-alpha compiled on Sep 29, 2023) was compiled with a version of ITK that generates false alarms in ensuring orthonormal directions. Re-compiling greedy with a recent version of ITK resolves this issue (I installed the Github master ITK and VTK libraries).

However, I would like to suggest the following enhancements:

  • It would be great if the greedy (and ITK-SNAP) binaries were distributed with this fix.
  • The current version of greedy downloaded from the master branch requires VTK for quality mesh transformations. Since the Installation directions suggest downloading from the master branch, the Prerequisites of the Installation documents should be updated to reflect this requirement.
  • After installing VTK, the Installation directions did allow me to compile grredy, however the make command did not complete successfully. Presumably, it had issues compiling other executables using gcc version 13.2.0 (Ubuntu 13.2.0-4ubuntu3) . Perhaps additional instructions need to be added to the installation guide. These are the errors from the compile:
/home/chris/src/greedy/testing/src/greedy_multi_chunk.cxx: In function ‘void initialize_assemblies(ChunkGreedyParameters, GreedyParameters, std::map<short int, MultiChunkAffineAssembly<VDim, TReal> >&, std::vector<short int, std::allocator<short int> >&, typename itk::Image<short int, VDim>::Pointer&)’:
/home/chris/src/greedy/testing/src/greedy_multi_chunk.cxx:189:20: error: ‘BinaryThresholdImageFilter’ in namespace ‘itk’ does not name a template type
  189 |       typedef itk::BinaryThresholdImageFilter<ChunkMaskImageType, typename LDDMMType::ImageType> TFilter;
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/chris/src/greedy/testing/src/greedy_multi_chunk.cxx:190:16: error: ‘TFilter’ has not been declared
  190 |       typename TFilter::Pointer thresh = TFilter::New();
      |                ^~~~~~~
/home/chris/src/greedy/testing/src/greedy_multi_chunk.cxx:190:33: error: expected ‘(’ before ‘thresh’
  190 |       typename TFilter::Pointer thresh = TFilter::New();
      |                                 ^~~~~~
      |                                 (
/home/chris/src/greedy/testing/src/greedy_multi_chunk.cxx:191:7: error: ‘thresh’ was not declared in this scope
  191 |       thresh->SetInput(chunk_mask);

Transformation On PointSets (-rs)

I used the following commands for registration and it worked perfectly. After that, I applied transformation (warp(affine)) on pointset like .vtk or .obj formats but there is a problem that the result (vtkresult.vtk) is exactly the same as MovingImg and it seems that the transformation doesn't have any effect on the MovingImg.vtk. Would you help me with applying transformation on pointset?

greedy -d 3 -a -i fixedImg.nrrd MovingImg.nrrd -dof 12 -o affinematrix.mat -m SSD -ia-image-centers -n 100x0 -float
greedy -d 3 -m SSD -i fixedImg.nrrd MovingImg.nrrd -it affinematrix.mat -o warp.nii.gz -oinv inverse_wrap.nii.gz -n 100x0 -float
greedy -d 3 -rf fixedImg.nrrd -rm MovingImg.nrrd finalOutput.nrrd -ri LABEL 0.2vox -r warp.nii.gz affinematrix.mat -float
_

before registration .nnrd images:
https://drive.google.com/file/d/1UP0-A2XK2aumJQl1N0qR5_MsYO0KEep5/view?usp=sharing

after registration .nrrd images:
https://drive.google.com/file/d/1e4lmPDTOqng6octnIxqDyCw2f8paalaz/view?usp=sharing

transformation on vtk:
greedy -d 3 -rf fixedImg.nrrd -rs MovingImg.vtk vtkresult.vtk -r warp.nii.gz affinematrix.mat

It doesn't work,I don't know why

Hello.

I met a problem. could you pls help me?

My system is ubuntu20.4 on the virtual machine.
I've built with the command make -j 8,
[ 6%] Built target text_to_hex
[ 30%] Built target docs_to_hex
[ 36%] Built target test_accum
[ 63%] Built target greedyapi
[ 86%] Built target test_greedy
[ 86%] Built target greedy
[ 90%] Built target greedy_template_average
[100%] Built target multi_chunk_greedy
but nothing happened after running the command
greedy -d 3 -a
-m NCC 2x2x2
-i /home/fll/Desktop/greedy/czzDTI.nii.gz /home/fll/Desktop/greedy/czzT1.nii.gz
-o /home/fll/Desktop/greedy/affine.mat
-ia-image-centers -n 100x50x10

When I use the command

greedy -d 3 -a
-m NCC 2x2x2
-i /home/fll/Desktop/greedy/czzDTI.nii.gz /home/fll/Desktop/greedy/czzT1.nii.gz
-o /home/fll/Desktop/greedy/affine.mat
-ia-image-centers -n 100x50x10
, the system says it can't be found.

Building greedy on Linux

Hi Greedy Guys,

I want to compile greedy on linux. I managed to compile itk4.12 with cmake. I cloned greedy from github and now I am trying to build greedy on linux. I stop at some point in this process. I am getting an error like this:

(base) [k ~]$ cd /pst/data/imaging/Agata/greedy/bu ild-greedy-itk4.12
(base) [aga@ build-greedy-itk4.12]$ cmake -B . -S /pst/data/imaging/ Agata/greedy/greedy -D ITK_DIR:PATH=/pst/data/imaging/Agata/greedy/build-itk4.12/ -- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- Check for working C compiler: /pst/apps/GCC/4.8.4/bin/cc
-- Check for working C compiler: /pst/apps/GCC/4.8.4/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /pst/apps/GCC/4.8.4/bin/c++
-- Check for working CXX compiler: /pst/apps/GCC/4.8.4/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- GREEDY Version: 1.0.1 Released Mar 21, 2019
-- GIT Info:
-- Branch : master
-- SHA : a9fcaac
-- Date : 2021-02-19 10:13:08 -0500
-- Configuring done
-- Generating done
-- Build files have been written to: /pst/data/imaging/Agata/greedy/build-greedy-it k4.12
(base) [aga@ build-greedy-itk4.12]$ make
Scanning dependencies of target greedyapi
[ 4%] Building CXX object CMakeFiles/greedyapi.dir/src/lddmm_data.cxx.o
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx: In static member function ‘static void LDDMMData<TFloat, VDim>::img_downsample(LDDMMData<TFloat, VDim>::ImageType, LDDM MData<TFloat, VDim>::ImageType, double)’:
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx:1689:9: error: ISO C++ for bids declaration of ‘smooth’ with no type [-fpermissive]
auto smooth = fltSmooth->GetOutput();
^
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx: In instantiation of ‘stat ic void LDDMMData<TFloat, VDim>::img_downsample(LDDMMData<TFloat, VDim>::ImageType
, LDDMMData< TFloat, VDim>::ImageType*, double) [with TFloat = float; unsigned int VDim = 2u; LDDMMData<TFlo at, VDim>::ImageType = itk::Image<float, 2u>]’:
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx:2124:16: required from h ere
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx:1689:39: error: cannot con vert ‘itk::ImageSource<itk::Image<float, 2u> >::OutputImageType* {aka itk::Image<float, 2u>}’ to ‘int’ in initialization
auto smooth = fltSmooth->GetOutput();
^
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx: In instantiation of ‘stat ic void LDDMMData<TFloat, VDim>::img_downsample(LDDMMData<TFloat, VDim>::ImageType
, LDDMMData< TFloat, VDim>::ImageType*, double) [with TFloat = float; unsigned int VDim = 3u; LDDMMData<TFlo at, VDim>::ImageType = itk::Image<float, 3u>]’:
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx:2125:16: required from h ere
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx:1689:39: error: cannot con vert ‘itk::ImageSource<itk::Image<float, 3u> >::OutputImageType* {aka itk::Image<float, 3u>}’ to ‘int’ in initialization
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx: In instantiation of ‘stat ic void LDDMMData<TFloat, VDim>::img_downsample(LDDMMData<TFloat, VDim>::ImageType*, LDDMMData< TFloat, VDim>::ImageType*, double) [with TFloat = float; unsigned int VDim = 4u; LDDMMData<TFlo at, VDim>::ImageType = itk::Image<float, 4u>]’:
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx:2126:16: required from h ere
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx:1689:39: error: cannot con vert ‘itk::ImageSource<itk::Image<float, 4u> >::OutputImageType* {aka itk::Image<float, 4u>}’ to ‘int’ in initialization
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx: In instantiation of ‘stat ic void LDDMMData<TFloat, VDim>::img_downsample(LDDMMData<TFloat, VDim>::ImageType*, LDDMMData< TFloat, VDim>::ImageType*, double) [with TFloat = double; unsigned int VDim = 2u; LDDMMData<TFl oat, VDim>::ImageType = itk::Image<double, 2u>]’:
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx:2128:16: required from h ere
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx:1689:39: error: cannot con vert ‘itk::ImageSource<itk::Image<double, 2u> >::OutputImageType* {aka itk::Image<double, 2u>} ’ to ‘int’ in initialization
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx: In instantiation of ‘stat ic void LDDMMData<TFloat, VDim>::img_downsample(LDDMMData<TFloat, VDim>::ImageType*, LDDMMData< TFloat, VDim>::ImageType*, double) [with TFloat = double; unsigned int VDim = 3u; LDDMMData<TFl oat, VDim>::ImageType = itk::Image<double, 3u>]’:
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx:2129:16: required from h ere
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx:1689:39: error: cannot con vert ‘itk::ImageSource<itk::Image<double, 3u> >::OutputImageType* {aka itk::Image<double, 3u>} ’ to ‘int’ in initialization
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx: In instantiation of ‘stat ic void LDDMMData<TFloat, VDim>::img_downsample(LDDMMData<TFloat, VDim>::ImageType*, LDDMMData< TFloat, VDim>::ImageType*, double) [with TFloat = double; unsigned int VDim = 4u; LDDMMData<TFl oat, VDim>::ImageType = itk::Image<double, 4u>]’:
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx:2130:16: required from h ere
/pst/data/imaging/Agata/greedy/greedy/src/lddmm_data.cxx:1689:39: error: cannot con vert ‘itk::ImageSource<itk::Image<double, 4u> >::OutputImageType* {aka itk::Image<double, 4u>} ’ to ‘int’ in initialization
make[2]: *** [CMakeFiles/greedyapi.dir/src/lddmm_data.cxx.o] Error 1
make[1]: *** [CMakeFiles/greedyapi.dir/all] Error 2
make: *** [all] Error 2

I would appreciate for any help or advice in this issue.

Best,
Agata

`-rf` argument when applying the warps/affine

what is the purpose of -rf argument here in the quick start?

greedy -d 3 \
    -rf fixed.nii.gz \
    -rm moving.nii.gz resliced.nii.gz \
    -ri LABEL 0.2vox \
    -rm moving_seg.nii.gz resliced_seg.nii.gz \
    -r warp.nii.gz affine.mat 

i understand that in the documentation of-rf it says "Images will be re-sliced into this space.". But haven't warp.nii.gz and affine.mat learned where in the space to transform already? So i dont understand why we need to specify the fixed image here..

thank you!

Trying to build on Windows

Hey Paul - trying to build on Windows. Not for me, but a general solution for those wanting to use greedy. The repo is located at: https://github.com/muschellij2/greedyreg

It compiles a lot of the way, but fails on lddmm.exe with a series of "undefined reference"s:

CMakeFiles\lddmm.dir/objects.a(lddmm_main.cxx.obj):lddmm_main.cxx:(.text$_Z8run_testIdLj2EEiiPPc[_Z8run_testIdLj2EEiiPPc]+0x75): undefined reference to `LDDMMData<double, 2u>::img_read(char const*, itk::SmartPointer<itk::Image<double, 2u> >&)'

If you see https://ci.appveyor.com/project/muschellij2/greedyreg (I'm not sure if you can view this), you can see the compilation (in Artifacts → failure.zip → 00install.out) the errors. I don't know why this may occur.

The configure script is located at: https://github.com/muschellij2/greedyreg/blob/master/configure.win

We can discuss other things about that, such as I may or may not need the PKG_LIBS, but wanted your thoughts on the error above if you have time.

Smoothing cannot be zero

I would like to evaluate some parameter choices against ANTs defaults, which use zero smoothing in some contexts. Using -s 1.732vox 0vox (ANTs default) in registration causes a runtime error:

src/ITK-4.13.2/Modules/Filtering/Smoothing/include/itkRecursiveGaussianImageFilter.hxx:344:
itk::ERROR: RecursiveGaussianImageFilter(0x3e34950): Sigma must be greater than zero.

Similarly, -ri LABEL 0vox fails.

Using a small number is a viable workaround.

Weird demofrmation following Quick Start guide

Following the quick start guide here and using -d 2 instead of -d 3, using the images provided in the /matlab/diff directory, I get a weird deformation. Below shows (fixed, moving, warped) images from top to bottom. I also include the deformation field. Any ideas why this is the case?

brain_fixed
brain_moving
resliced
warp.nii.gz

Inconsistent warning message

I am running the version of greedy that ships with the latest version of ITKsnap (4.0.2). I am getting inconsistent results where sometimes an error is generated and sometimes it is not.

tmp % rm ./new.mat                                                                           
tmp % greedy -V 0 -a -d 3 -m MI -i $fixed $moving -o ./new.mat -ia-image-centers -n 100x50x10
tmp % rm ./new.mat                                                                           
tmp % greedy -V 0 -a -d 3 -m MI -i $fixed $moving -o ./new.mat -ia-image-centers -n 100x50x10
tmp % rm ./new.mat                                                                           
tmp % greedy -V 0 -a -d 3 -m MI -i $fixed $moving -o ./new.mat -ia-image-centers -n 100x50x10
tmp % rm ./new.mat                                                                           
tmp % greedy -V 0 -a -d 3 -m MI -i $fixed $moving -o ./new.mat -ia-image-centers -n 100x50x10
tmp % rm ./new.mat                                                                           
tmp % greedy -V 0 -a -d 3 -m MI -i $fixed $moving -o ./new.mat -ia-image-centers -n 100x50x10
tmp % rm ./new.mat                                                                           
tmp % greedy -V 0 -a -d 3 -m MI -i $fixed $moving -o ./new.mat -ia-image-centers -n 100x50x10
tmp % rm ./new.mat                                                                           
tmp % greedy -V 0 -a -d 3 -m MI -i $fixed $moving -o ./new.mat -ia-image-centers -n 100x50x10
tmp % rm ./new.mat                                                                           
tmp % greedy -V 0 -a -d 3 -m MI -i $fixed $moving -o ./new.mat -ia-image-centers -n 100x50x10
tmp % rm ./new.mat                                                                           
tmp % greedy -V 0 -a -d 3 -m MI -i $fixed $moving -o ./new.mat -ia-image-centers -n 100x50x10
 IFLAG= -1  LINE SEARCH FAILED. SEE DOCUMENTATION OF ROUTINE MCSRCH ERROR RETURN OF LINE SEARCH: INFO= 3 POSSIBLE CAUSES: FUNCTION OR GRADIENT ARE INCORRECT OR INCORRECT TOLERANCESvnl_lbfgs: Error. Netlib routine lbfgs failed.
tmp % rm ./new.mat                                                                           
tmp % greedy -V 0 -a -d 3 -m MI -i $fixed $moving -o ./new.mat -ia-image-centers -n 100x50x10
tmp % rm ./new.mat                                                                           
tmp % greedy -V 0 -a -d 3 -m MI -i $fixed $moving -o ./new.mat -ia-image-centers -n 100x50x10
 IFLAG= -1  LINE SEARCH FAILED. SEE DOCUMENTATION OF ROUTINE MCSRCH ERROR RETURN OF LINE SEARCH: INFO= 6 POSSIBLE CAUSES: FUNCTION OR GRADIENT ARE INCORRECT OR INCORRECT TOLERANCESvnl_lbfgs: Error. Netlib routine lbfgs failed.

I have set the SForm and QForm so fslhd reports both are Scanner Anat. In ITKsnap the alignment looks reasonable.

The values in the output new.mat file look a tiny bit different between runs, but visually are pretty close, including the failed runs.

Screenshot 2023-12-20 at 8 53 12 PM

Cannot use -oinv without -o

It would be nice to be able to save just the inverse map, but right calling without -o and with just -oinv seems to cause a crash, after registration when the output is being written. Error message (on OS X) is:

ABORTING PROGRAM DUE TO RUNTIME EXCEPTION -- /Users/picsl/tk/bb3/Nightly/itk/v4.12.2/itk/Modules/IO/ImageBase/include/itkImageFileWriter.hxx:123:
itk::ERROR: ImageFileWriter(0x7fe14b16ec60): No filename was specified

Reference.rst L#206 missing words?

Did you mean "almost no cost to performance" in L#206

Currently it says:

"Note that there is almost to performance cost for using larger radii due to efficient implementation."

Many Errors while building ITK-Snap

Hey,
I want to build iITK-Snap to create some additional feature to it, but if I'm building it on my Windows 10, i get a lot of errors regarding greedy. What are some possible problems/solutions to this?

Sincerly,
Mark Nardi

Apply transformation matrices generated by greedy to images loaded in SimpleITK

Hello

I'm having a great time using greedy.

I'm wondering what's an easy way to apply the transforms generated by greedy to images loaded in SimpleITK (Python)? I understand that one difference is that greedy (RAS) and ITK (LPS) uses a different coordinate system, so I tried two things to remedy that -- which didn't seem to work:

  • I negated some values of my greedy generated affine matrix so that they are now compatible to images in LPS coordinates, according to this article. I then applied that modified affine matrix to my image loaded in SimpleITK.

  • I transposed the image in the first two axes, applied the affine transformation, then transposed the image back.

Am I missing other differences? Or am I not, so it's probably the case that I did something wrong?

Help appreciated from anyone who has tried doing this. I'm very new to registration, so any help would be great! Thanks in advance!

Best Wishes

Errors when trying to install greedy

Hi Paul,

I have been trying to install greedy in Linux, following the instructions in https://greedy.readthedocs.io/en/latest/install.html. I tried the installation with two different versions of ITK, -5.2.1 and -4.13.3. When I tried with version 5.2.1, I got the error: 'fatal error: itkVectorResampleImageFilter.h: No such file or directory', when trying to make greedy. I thought this could be due to a version mismatch, and thus tried with an earlier version of ITK 4.13.3. Then, I get a different error in the make step: 'error: 'isnan' was not declared in this scope'. I have been trying to pin-point the source of this error for a couple of weeks, but was unable to do so. It would be great if you can let me know what you think about this, if I am missing something and if there's any way to fix this. Please let me know if you need any further details. Thanks a lot!

Best regards,
Anuththara

Building on Yosemite

TL;DR, need ccmake with:

 CMAKE_OSX_DEPLOYMENT_TARGET      10.11                                                
 CMAKE_OSX_SYSROOT                /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
  • cmake version 3.5.2
  • xcode-select version 2339.
  • OS X Yosemite- 10.10.5 (14F2411)
  • clang/clang --version
    Apple LLVM version 7.0.2 (clang-700.1.81)
    Target: x86_64-apple-darwin14.5.0
    Thread model: posix
  • Homebrew 1.2.1, Homebrew/homebrew-core (git revision 703a1; last commit 2017-06-01)

Get the following error:

ld: file not found: /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Tried
export MACOSX_DEPLOYMENT_TARGET=10.10
no dice.

Tried setting
MAKE_OSX_DEPLOYMENT_TARGET 10.11

 CMake Error at /opt/local/share/cmake-3.5/Modules/Platform/Darwin.cmake:85 (message):
   CMAKE_OSX_DEPLOYMENT_TARGET (10.11) is greater than CMAKE_OSX_SYSROOT SDK:

   Please set CMAKE_OSX_DEPLOYMENT_TARGET to 10.10 or lower.
 Call Stack (most recent call first):
   /opt/local/share/cmake-3.5/Modules/CMakeSystemSpecificInformation.cmake:36
 (include)
   CMakeLists.txt:1 (PROJECT)

So I had to set the SDK to the one for 10.11:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk

Then it seems

errors occur when building greedy

Hello.

I met a problem when building this project. could you pls help me?

My system is Macos.

My clang version is below.
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

** I have installed ITK5.0 successfully and pass the ITK installation test.**

Here is the log.
[ 10%] Built target text_to_hex
[ 15%] Building CXX object CMakeFiles/greedyapi.dir/src/lddmm_data.cxx.o
In file included from /Users/shuai/Greedy/greedy/src/lddmm_data.cxx:27:
In file included from /Users/shuai/Greedy/greedy/src/lddmm_data.h:31:
In file included from /usr/local/include/ITK-5.0/itkNumericTraits.h:21:
In file included from /usr/local/include/ITK-5.0/itkMacro.h:42:
/usr/local/include/ITK-5.0/itkConfigure.h:59:6: warning: "WARNING: The current project is configured
to use a C++ standard version older than the C++ standard used for this build of ITK"
[-W#warnings]
#warning "WARNING: The current project is configured to use a C++ standard version olde...
^
In file included from /Users/shuai/Greedy/greedy/src/lddmm_data.cxx:27:
In file included from /Users/shuai/Greedy/greedy/src/lddmm_data.h:31:
In file included from /usr/local/include/ITK-5.0/itkNumericTraits.h:21:
/usr/local/include/ITK-5.0/itkMacro.h:166:6: error: "Apple LLVM < 5.0 (clang < 3.3) is not supported
under ITKv5"
#error "Apple LLVM < 5.0 (clang < 3.3) is not supported under ITKv5"
^
In file included from /Users/shuai/Greedy/greedy/src/lddmm_data.cxx:27:
In file included from /Users/shuai/Greedy/greedy/src/lddmm_data.h:31:
In file included from /usr/local/include/ITK-5.0/itkNumericTraits.h:21:
In file included from /usr/local/include/ITK-5.0/itkMacro.h:1333:
In file included from /usr/local/include/ITK-5.0/itkExceptionObject.h:28:
/usr/local/include/ITK-5.0/itkSmartPointer.h:54:22: warning: alias declarations are a C++11
extension [-Wc++11-extensions]
using ObjectType = TObjectType;
^
/usr/local/include/ITK-5.0/itkSmartPointer.h:57:5: warning: alias declarations are a C++11 extension
[-Wc++11-extensions]
typename std::enable_if<std::is_convertible<T*, TObjectType*>::value>;
^
/usr/local/include/ITK-5.0/itkSmartPointer.h:60:3: error: unknown type name 'constexpr'
constexpr SmartPointer () noexcept:
^
/usr/local/include/ITK-5.0/itkSmartPointer.h:60:13: error: constructor cannot have a return type
constexpr SmartPointer () noexcept:
^~~~~~~~~~~~
/usr/local/include/ITK-5.0/itkSmartPointer.h:60:28: error: expected ';' at end of declaration list
constexpr SmartPointer () noexcept:
^
;
/usr/local/include/ITK-5.0/itkSmartPointer.h:192:18: error: expected ';' at end of declaration list
void Register() noexcept
^
;
/usr/local/include/ITK-5.0/itkSmartPointer.h:206:71: error: expected ';' at end of declaration
bool operator==( const SmartPointer& l, const SmartPointer& r ) noexcept
^
;
/usr/local/include/ITK-5.0/itkSmartPointer.h:206:73: error: C++ requires a type specifier for all
declarations
bool operator==( const SmartPointer& l, const SmartPointer& r ) noexcept
^
/usr/local/include/ITK-5.0/itkSmartPointer.h:206:81: error: expected ';' after top level declarator
bool operator==( const SmartPointer& l, const SmartPointer& r ) noexcept
^
;
In file included from /Users/shuai/Greedy/greedy/src/lddmm_data.cxx:27:
In file included from /Users/shuai/Greedy/greedy/src/lddmm_data.h:31:
In file included from /usr/local/include/ITK-5.0/itkNumericTraits.h:21:
In file included from /usr/local/include/ITK-5.0/itkMacro.h:1333:
/usr/local/include/ITK-5.0/itkExceptionObject.h:54:22: warning: alias declarations are a C++11
extension [-Wc++11-extensions]
using Superclass = std::exception;
^
/usr/local/include/ITK-5.0/itkExceptionObject.h:58:20: error: expected ';' at end of declaration
list
ExceptionObject() noexcept;
^
;
/usr/local/include/ITK-5.0/itkExceptionObject.h:64:48: error: expected ';' at end of declaration
list
ExceptionObject(const ExceptionObject & orig) noexcept;
^
;
/usr/local/include/ITK-5.0/itkExceptionObject.h:67:3: error: exception specification of overriding
function is more lax than base version
~ExceptionObject() noexcept override;
^
/Library/Developer/CommandLineTools/usr/include/c++/v1/exception:101:13: note: overridden virtual
function is here
virtual ~exception() _NOEXCEPT;
^
In file included from /Users/shuai/Greedy/greedy/src/lddmm_data.cxx:27:
In file included from /Users/shuai/Greedy/greedy/src/lddmm_data.h:31:
In file included from /usr/local/include/ITK-5.0/itkNumericTraits.h:21:
In file included from /usr/local/include/ITK-5.0/itkMacro.h:1333:
/usr/local/include/ITK-5.0/itkExceptionObject.h:67:21: error: expected ';' at end of declaration
list
~ExceptionObject() noexcept override;
^
;
/usr/local/include/ITK-5.0/itkExceptionObject.h:70:60: error: expected ';' at end of declaration
list
ExceptionObject & operator=(const ExceptionObject & orig) noexcept;
^
;
/usr/local/include/ITK-5.0/itkExceptionObject.h:106:16: error: exception specification of overriding
function is more lax than base version
const char * what() const noexcept override;
^
/Library/Developer/CommandLineTools/usr/include/c++/v1/exception:102:25: note: overridden virtual
function is here
virtual const char* what() const _NOEXCEPT;
^
In file included from /Users/shuai/Greedy/greedy/src/lddmm_data.cxx:27:
In file included from /Users/shuai/Greedy/greedy/src/lddmm_data.h:31:
In file included from /usr/local/include/ITK-5.0/itkNumericTraits.h:21:
In file included from /usr/local/include/ITK-5.0/itkMacro.h:1333:
/usr/local/include/ITK-5.0/itkExceptionObject.h:106:28: error: expected ';' at end of declaration
list
const char * what() const noexcept override;
^
;
/usr/local/include/ITK-5.0/itkExceptionObject.h:171:26: error: expected ';' at end of declaration
list
MemoryAllocationError() noexcept:ExceptionObject() {}
^
;
/usr/local/include/ITK-5.0/itkExceptionObject.h:188:39: warning: 'override' keyword is a C++11
extension [-Wc++11-extensions]
const char * GetNameOfClass() const override
^
/usr/local/include/ITK-5.0/itkExceptionObject.h:202:15: error: expected ';' at end of declaration
list
RangeError() noexcept:ExceptionObject() {}
^
;
/usr/local/include/ITK-5.0/itkExceptionObject.h:213:39: warning: 'override' keyword is a C++11
extension [-Wc++11-extensions]
const char * GetNameOfClass() const override
^
/usr/local/include/ITK-5.0/itkExceptionObject.h:230:25: error: expected ';' at end of declaration
list
InvalidArgumentError() noexcept:ExceptionObject() {}
^
;
/usr/local/include/ITK-5.0/itkExceptionObject.h:245:39: warning: 'override' keyword is a C++11
extension [-Wc++11-extensions]
const char * GetNameOfClass() const override
^
/usr/local/include/ITK-5.0/itkExceptionObject.h:259:30: error: expected ';' at end of declaration
list
IncompatibleOperandsError() noexcept:ExceptionObject() {}
^
;
/usr/local/include/ITK-5.0/itkExceptionObject.h:270:39: warning: 'override' keyword is a C++11
extension [-Wc++11-extensions]
const char * GetNameOfClass() const override
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
8 warnings and 20 errors generated.
make[2]: *** [CMakeFiles/greedyapi.dir/src/lddmm_data.cxx.o] Error 1
make[1]: *** [CMakeFiles/greedyapi.dir/all] Error 2
make: *** [all] Error 2

Showing black border square when conducting affine transform

147
like above(one slice of a 3d picture)
Is there anything wrong with the parameters?
Here is the .bash file I use. All the .nii file are 3 dimensional picture. 001_Cta.nii is fixed. 2.nii is moved.
~/Greedy/build/greedy -d 3 -a
-i ./CTAs/001_Cta.nii ./CTAs/2.nii
-ia-image-centers
-o affine.mat
-n 100x50x0
-m NCC 2x2x2

~/Greedy/build/greedy -d 3
-rf ./CTAs/001_Cta.nii
-rm ./CTAs/2.nii resliced.nii
-ri LABEL 0.2vox
-r affine.mat

will this work on ITK 5.1.2?

Hi there! I'm trying to upgrade the dependencies of CaPTk, which utilizes greedy. As noted in another greedy issue, I'm running into deprecated/missing itkBarrier.h. Somewhat ominously, it was noted that "there seem to be quite some other issues with compatiblity to ITKv5".

Can I expect greedy to work with ITK 5.1.2 if I address the itkBarrier issue, or are there some fundamental issues that go beyond simple renaming?

save iterations

Good Day,
Is it possible to save iterations of a registration algorithm? Simply, I want to see each step.

itkv5 progress

Hi @pyushkevich - just wanted to give an update. I made lots of little changes to get ITK 5.1.2 compiling on this forked branch.

Now the bigger changes need to happen, the threading code needs to change in MultiComponent*ImageMetric.*, because they use itkBarrier.h. Looking at the ITK5 migration guide, it seems like there is a new strategy for multi-threading.

Could you take a look at the migration guide and let me know what you think the right approach is to refactoring here?

Errors building in docker

I've been trying to get greedy to build in a docker container but I'm running into errors with isnan

ITK: 4.12.2
greedy: a9fcaac

Dockerfile

FROM ubuntu:18.04
RUN apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install -y build-essential cmake ninja-build
COPY ITK /ITK
RUN mkdir itk_build;cd itk_build;cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_TESTING=OFF /ITK;ninja
COPY greedy /greedy
RUN mkdir greedy_build;cd greedy_build; cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DITK_DIR=/itk_build /greedy;ninja
ENTRYPOINT [ "bash" ]

ITK builds fine but when it gets to greedy I get error messages like

FAILED: CMakeFiles/greedyapi.dir/src/MultiImageRegistrationHelper.cxx.o 
/usr/bin/c++  -DITK_IO_FACTORY_REGISTER_MANAGER -IITKIOFactoryRegistration -I/ITK/Modules/Segmentation/Watersheds/include -I/ITK/Modules/Segmentation/Voronoi/include -I/ITK/Modules/Video/IO/include -I/ITK/Modules/Video/Filtering/include -I/ITK/Modules/Video/Core/include -I/ITK/Modules/Bridge/VTK/include -I/ITK/Modules/Core/TestKernel/include -I/ITK/Modules/Filtering/SpatialFunction/include -I/ITK/Modules/Registration/RegistrationMethodsv4/include -I/ITK/Modules/Segmentation/RegionGrowing/include -I/ITK/Modules/Filtering/QuadEdgeMeshFiltering/include -I/ITK/Modules/Numerics/NeuralNetworks/include -I/ITK/Modules/Registration/Metricsv4/include -I/ITK/Modules/Numerics/Optimizersv4/include -I/ITK/Modules/Segmentation/MarkovRandomFieldsClassifiers/include -I/ITK/Modules/Segmentation/LevelSetsv4/include -I/ITK/Modules/Segmentation/LabelVoting/include -I/ITK/Modules/Segmentation/KLMRegionGrowing/include -I/ITK/Modules/Filtering/ImageNoise/include -I/ITK/Modules/Filtering/ImageFusion/include -I/ITK/Modules/IO/VTK/include -I/ITK/Modules/IO/TransformMatlab/include -I/ITK/Modules/IO/TransformInsightLegacy/include -I/ITK/Modules/IO/TransformHDF5/include -I/ITK/Modules/IO/TransformBase/include -I/ITK/Modules/IO/TransformFactory/include -I/ITK/Modules/IO/Stimulate/include -I/ITK/Modules/IO/Siemens/include -I/ITK/Modules/IO/RAW/include -I/ITK/Modules/IO/PNG/include -I/ITK/Modules/ThirdParty/PNG/src -I/itk_build/Modules/ThirdParty/PNG/src -I/ITK/Modules/IO/NRRD/include -I/ITK/Modules/ThirdParty/NrrdIO/src/NrrdIO -I/itk_build/Modules/ThirdParty/NrrdIO/src/NrrdIO -I/ITK/Modules/IO/NIFTI/include -I/ITK/Modules/IO/Meta/include -I/ITK/Modules/IO/Mesh/include -I/ITK/Modules/IO/MRC/include -I/ITK/Modules/IO/LSM/include -I/ITK/Modules/IO/TIFF/include -I/ITK/Modules/ThirdParty/TIFF/src -I/itk_build/Modules/ThirdParty/TIFF/src/itktiff -I/itk_build/Modules/ThirdParty/TIFF/src -I/ITK/Modules/IO/JPEG/include -I/ITK/Modules/ThirdParty/JPEG/src -I/itk_build/Modules/ThirdParty/JPEG/src -I/ITK/Modules/IO/HDF5/include -I/ITK/Modules/IO/GIPL/include -I/ITK/Modules/IO/GE/include -I/ITK/Modules/IO/IPL/include -I/ITK/Modules/IO/GDCM/include -I/ITK/Modules/IO/CSV/include -I/ITK/Modules/IO/BioRad/include -I/ITK/Modules/IO/BMP/include -I/itk_build/Modules/ThirdParty/HDF5/src -I/ITK/Modules/ThirdParty/HDF5/src -I/ITK/Modules/Filtering/GPUThresholding/include -I/ITK/Modules/Filtering/GPUSmoothing/include -I/ITK/Modules/Registration/GPUPDEDeformable/include -I/ITK/Modules/Registration/GPUCommon/include -I/ITK/Modules/Filtering/GPUImageFilterBase/include -I/ITK/Modules/Filtering/GPUAnisotropicSmoothing/include -I/ITK/Modules/Core/GPUFiniteDifference/include -I/ITK/Modules/Core/GPUCommon/include -I/ITK/Modules/ThirdParty/GIFTI/src/gifticlib -I/ITK/Modules/ThirdParty/NIFTI/src/nifti/znzlib -I/ITK/Modules/ThirdParty/NIFTI/src/nifti/niftilib -I/ITK/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition -I/ITK/Modules/ThirdParty/GDCM/src/gdcm/Source/MessageExchangeDefinition -I/ITK/Modules/ThirdParty/GDCM/src/gdcm/Source/InformationObjectDefinition -I/ITK/Modules/ThirdParty/GDCM/src/gdcm/Source/Common -I/ITK/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary -I/ITK/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat -I/itk_build/Modules/ThirdParty/GDCM/src/gdcm/Source/Common -I/itk_build/Modules/ThirdParty/GDCM -I/ITK/Modules/Registration/FEM/include -I/ITK/Modules/Registration/PDEDeformable/include -I/ITK/Modules/Numerics/FEM/include -I/ITK/Modules/Registration/Common/include -I/ITK/Modules/IO/SpatialObjects/include -I/ITK/Modules/IO/XML/include -I/ITK/Modules/ThirdParty/Expat/src/expat -I/itk_build/Modules/ThirdParty/Expat/src/expat -I/ITK/Modules/Numerics/Eigen/include -I/ITK/Modules/Filtering/DisplacementField/include -I/ITK/Modules/Filtering/DiffusionTensorImage/include -I/ITK/Modules/Filtering/Denoising/include -I/ITK/Modules/Segmentation/DeformableMesh/include -I/ITK/Modules/Filtering/Deconvolution/include -I/ITK/Modules/ThirdParty/DICOMParser/src/DICOMParser -I/itk_build/Modules/ThirdParty/DICOMParser/src/DICOMParser -I/ITK/Modules/Filtering/Convolution/include -I/ITK/Modules/Filtering/FFT/include -I/ITK/Modules/Filtering/Colormap/include -I/ITK/Modules/Segmentation/Classifiers/include -I/ITK/Modules/Segmentation/BioCell/include -I/ITK/Modules/Filtering/BiasCorrection/include -I/ITK/Modules/Numerics/Polynomials/include -I/ITK/Modules/Filtering/AntiAlias/include -I/ITK/Modules/Segmentation/LevelSets/include -I/ITK/Modules/Segmentation/SignedDistanceFunction/include -I/ITK/Modules/Numerics/Optimizers/include -I/ITK/Modules/Filtering/ImageFeature/include -I/ITK/Modules/Filtering/ImageSources/include -I/ITK/Modules/Filtering/ImageGradient/include -I/ITK/Modules/Filtering/Smoothing/include -I/ITK/Modules/Filtering/ImageCompare/include -I/ITK/Modules/IO/ImageBase/include -I/itk_build/Modules/IO/ImageBase -I/ITK/Modules/Filtering/FastMarching/include -I/ITK/Modules/Core/QuadEdgeMesh/include -I/ITK/Modules/Filtering/DistanceMap/include -I/ITK/Modules/Numerics/NarrowBand/include -I/ITK/Modules/Filtering/ImageLabel/include -I/ITK/Modules/Filtering/BinaryMathematicalMorphology/include -I/ITK/Modules/Filtering/MathematicalMorphology/include -I/ITK/Modules/Segmentation/ConnectedComponents/include -I/ITK/Modules/Filtering/Thresholding/include -I/ITK/Modules/Filtering/ImageIntensity/include -I/ITK/Modules/Filtering/Path/include -I/ITK/Modules/Filtering/ImageStatistics/include -I/ITK/Modules/Core/SpatialObjects/include -I/ITK/Modules/ThirdParty/MetaIO/src/MetaIO/src -I/itk_build/Modules/ThirdParty/MetaIO/src/MetaIO/src -I/ITK/Modules/ThirdParty/ZLIB/src -I/itk_build/Modules/ThirdParty/ZLIB/src -I/ITK/Modules/Core/Mesh/include -I/ITK/Modules/Filtering/ImageCompose/include -I/ITK/Modules/Filtering/LabelMap/include -I/ITK/Modules/Filtering/AnisotropicSmoothing/include -I/ITK/Modules/Filtering/ImageGrid/include -I/ITK/Modules/Core/ImageFunction/include -I/ITK/Modules/Core/Transform/include -I/ITK/Modules/Numerics/Statistics/include -I/itk_build/Modules/ThirdParty/Netlib -I/ITK/Modules/Core/ImageAdaptors/include -I/ITK/Modules/Filtering/CurvatureFlow/include -I/ITK/Modules/Filtering/ImageFilterBase/include -I/ITK/Modules/Core/FiniteDifference/include -I/ITK/Modules/Core/Common/include -I/itk_build/Modules/Core/Common -I/ITK/Modules/ThirdParty/VNLInstantiation/include -I/itk_build/Modules/ThirdParty/VNL/src/vxl/core -I/itk_build/Modules/ThirdParty/VNL/src/vxl/vcl -I/itk_build/Modules/ThirdParty/VNL/src/vxl/v3p/netlib -I/ITK/Modules/ThirdParty/VNL/src/vxl/core -I/ITK/Modules/ThirdParty/VNL/src/vxl/vcl -I/ITK/Modules/ThirdParty/VNL/src/vxl/v3p/netlib -I/itk_build/Modules/ThirdParty/KWSys/src -I/ITK/Modules/ThirdParty/KWIML/src -I/itk_build/Modules/ThirdParty/KWIML/src -I/itk_build/Modules/ThirdParty/DoubleConversion/src/double-conversion -I/ITK/Modules/ThirdParty/DoubleConversion/src/double-conversion -I/greedy/src -I/greedy/src/ITKFilters/include -I. -O3 -DNDEBUG   -std=gnu++1z -MD -MT CMakeFiles/greedyapi.dir/src/MultiImageRegistrationHelper.cxx.o -MF CMakeFiles/greedyapi.dir/src/MultiImageRegistrationHelper.cxx.o.d -o CMakeFiles/greedyapi.dir/src/MultiImageRegistrationHelper.cxx.o -c /greedy/src/MultiImageRegistrationHelper.cxx
/greedy/src/MultiImageRegistrationHelper.cxx: In instantiation of 'void MultiImageOpticalFlowHelper<TFloat, VDim>::BuildCompositeImages(double) [with TFloat = float; unsigned int VDim = 2]':
/greedy/src/MultiImageRegistrationHelper.cxx:1267:16:   required from here
/greedy/src/MultiImageRegistrationHelper.cxx:254:27: error: 'isnan' was not declared in this scope
         nans_fixed = isnan(LDDMMType::img_voxel_sum(fltExtractFixed->GetOutput()));
                      ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/greedy/src/MultiImageRegistrationHelper.cxx:254:27: note: suggested alternatives:
In file included from /usr/include/c++/7/complex:44:0,
                 from /ITK/Modules/Core/Common/include/itkNumericTraits.h:54,
                 from /ITK/Modules/Core/Common/include/itkConceptChecking.h:32,
                 from /ITK/Modules/Core/Common/include/itkAtomicIntDetail.h:39,
                 from /ITK/Modules/Core/Common/include/itkAtomicInt.h:38,
                 from /ITK/Modules/Core/Common/include/itkTimeStamp.h:33,
                 from /ITK/Modules/Core/Common/include/itkLightObject.h:23,
                 from /ITK/Modules/Core/Common/include/itkObject.h:31,
                 from /ITK/Modules/Core/Common/include/itkDataObject.h:31,
                 from /ITK/Modules/Core/Common/include/itkImageBase.h:31,
                 from /greedy/src/MultiImageRegistrationHelper.h:30,
                 from /greedy/src/MultiImageRegistrationHelper.cxx:27:

full log:
build.log

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.