[Insight-developers] [Insight-users] Fast Marching Minimal Path Extraction error

Dan Mueller dan.muel at gmail.com
Wed Jul 16 01:56:54 EDT 2008


Hi Alex,

Good to hear you got things working. Sorry for the trouble -- I have
not written CMake scripts for an installed version of ITK, so this was
something new for me. I will upload the changes in the coming days.

Regards, Dan

2008/7/15 Oleksandr Dzyubak <adzyubak at gmail.com>:
> Dear Daniel and Luis,
>
> I am sorry for resending my message once again but my previous one got
> bounced.
> I did not pay attention that in CC there was also the "Insight-developers"
> mailing list
> included which I do not belong to so my suggestion to solve the problem is
> below.
>
> Regards,
> Alex
>
>
> Oleksandr Dzyubak wrote:
>>
>> Hi Daniel,
>>
>> First, I started playing around trying to "improve" the CMakeLists.txt
>> files.
>> Not having success for a quite while, I finally made myself read the email
>> sent by Luis.
>> Following his advice, I changed the includes in all the template files as
>> below.
>>
>> 1) "itkArrivalFunctionToPathFilter.txx"
>>
>> // #include "vnl_math.h"
>> #include "vnl/vnl_math.h" #include "itkArrivalFunctionToPathFilter.h"
>>
>> 2) "itkSpeedFunctionToPathFilter.txx"
>>
>> // #include "vnl_math.h"
>> #include "vnl/vnl_math.h" #include "itkSpeedFunctionToPathFilter.h"
>> #include "itkFastMarchingUpwindGradientImageFilter.h"
>> #include "itkImageFileWriter.h"
>>
>>
>> 3) "itkSingleImageCostFunction.txx"
>>
>> // #include "vnl_math.h"
>> #include "vnl/vnl_math.h"
>> #include "itkSingleImageCostFunction.h"
>>
>>
>> And... You won't believe that.
>> Now everything is just working on all my boxes (Linux+FreeBSD).
>>
>> Many thanks all of you for your help and support,
>>
>> Alex
>>
>> PS. Daniel, could you upload the updated version to the repository
>> so the next Linux/UNIX guy could compile it without any problem?
>>
>> Thanks.
>>
>> Dan Mueller wrote:
>>>
>>> Hi Luis,
>>>
>>> 2008/7/14 Luis Ibanez <luis.ibanez at kitware.com>:
>>>
>>>>
>>>> The standard practice for including vnl_math.h is to do
>>>>             #include "vnl/vnl_math.h"
>>>>
>>>
>>> This was the first thing I asked Alex to try:
>>>    http://www.itk.org/pipermail/insight-users/2008-July/026687.html
>>>
>>> He reported that it did not work:
>>>    http://www.itk.org/pipermail/insight-users/2008-July/026708.html
>>>
>>> Obviously I'm doing something wrong in my CMakeLists.txt so that
>>> "Utilities/vxl/core" is not set as an include directory. Could it be
>>> that it is an installed version of ITK? (Alex?) Any other suggestions?
>>>
>>> Regards, Dan
>>>
>>> 2008/7/14 Luis Ibanez <luis.ibanez at kitware.com>:
>>>
>>>>
>>>> Hi Dan,
>>>>
>>>>
>>>> The standard practice for including vnl_math.h is to do
>>>>
>>>>
>>>>             #include "vnl/vnl_math.h"
>>>>
>>>>
>>>> You will find several examples of this use in Insight/Code/Common.
>>>>
>>>>
>>>>
>>>> In general, ITK_SOURCE_DIR shouldn't be used because it will not
>>>> exist in an installed ITK.
>>>>
>>>>
>>>>  Regards,
>>>>
>>>>
>>>>     Luis
>>>>
>>>>
>>>> ------------------
>>>> Dan Mueller wrote:
>>>>
>>>>>
>>>>> Hi Luis,
>>>>>
>>>>> Thanks for your response.
>>>>>
>>>>> I am using ITK_SOURCE_DIR to construct a path to
>>>>> {SOURCE}\Utilities\vxl\core\vnl so that "#include vnl_math.h" works.
>>>>>
>>>>> What is the recommended way to add this directory to the include path
>>>>> of a CMake generated project?
>>>>>
>>>>> Regards, Dan
>>>>>
>>>>> 2008/7/13 Luis Ibanez <luis.ibanez at kitware.com>:
>>>>>
>>>>>
>>>>>>
>>>>>> Hi Dan,
>>>>>>
>>>>>> The use of ITK_SOURCE_DIR is discouraged because when you install ITK
>>>>>> the actual source code may no longer be available.
>>>>>>
>>>>>> The ITK_SOURCE_DIR may make sense when you are building your
>>>>>> application
>>>>>> against a local build of ITK.
>>>>>>
>>>>>> If, on the other hand, you build against an installed ITK then only
>>>>>> the
>>>>>> header files and the compiled libraries will be available.
>>>>>>
>>>>>> If you are using a Debian installed ITK (or for that matter any Linux
>>>>>> or
>>>>>> Windows installation), then the ITK_SOURCE_DIR should not be
>>>>>> available.
>>>>>>
>>>>>> BTW: Why is that you need "ITK_SOURCE_DIR" ?
>>>>>>
>>>>>>
>>>>>>
>>>>>> It seems that the problem is that
>>>>>>
>>>>>>
>>>>>>              FIND_PACKAGE(ITK REQUIRED)
>>>>>>
>>>>>>
>>>>>> is not being used in this CMakeLists.txt file.
>>>>>>
>>>>>>
>>>>>> Please let us know,
>>>>>>
>>>>>>
>>>>>>   Luis
>>>>>>
>>>>>>
>>>>>>
>>>>>> ----------------
>>>>>> Dan Mueller wrote:
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Hi Alex,
>>>>>>>
>>>>>>> The problem is definitely in step 3. The VXL_INCLUDE_DIRS should have
>>>>>>> the full path (with non-empty ITK_SOURCE_DIR). It seems
>>>>>>> ITK_SOURCE_DIR
>>>>>>> is not being set...
>>>>>>>
>>>>>>> Insight Developers: do you know of any reason why ITK_SOURCE_DIR is
>>>>>>> not being set using the below CMakeLists.txt on Linux(Debian)? (It
>>>>>>> seems to work on Windows, cygwin, and the IJ Testing Environment...)
>>>>>>>
>>>>>>> Thanks for any insight.
>>>>>>>
>>>>>>> Regards, Dan
>>>>>>>
>>>>>>> #Set the project
>>>>>>> CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
>>>>>>> PROJECT(MinimalPath)
>>>>>>>
>>>>>>> #Include some macros from another file...
>>>>>>> INCLUDE(${CMAKE_SOURCE_DIR}/IJMacros.txt)
>>>>>>>
>>>>>>> #Setup required paths
>>>>>>> SET(DATA_PATH ${CMAKE_SOURCE_DIR}/Data)
>>>>>>> SET(SOURCE_PATH ${CMAKE_SOURCE_DIR}/Source)
>>>>>>> SET(TESTING_PATH ${CMAKE_SOURCE_DIR}/Testing)
>>>>>>>
>>>>>>> SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Single
>>>>>>> output directory for building all libraries." FORCE)
>>>>>>> SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Single
>>>>>>> output directory for building all executables." FORCE)
>>>>>>>
>>>>>>> #The following lines are required to use Dart
>>>>>>> ENABLE_TESTING()
>>>>>>> INCLUDE(Dart)
>>>>>>> FIND_PROGRAM(IMAGE_COMPARE ImageCompare)
>>>>>>>
>>>>>>> #Declare any external dependencies that your project may have here.
>>>>>>> #examples include: ITK, VTK, JPEG, PNG, OpenGL, ZLIB, Perl, Java
>>>>>>> #If you're not sure what name to use, look in the Modules directory
>>>>>>> of
>>>>>>> your
>>>>>>> #cmake install and check that a file named Find(Package).cmake exists
>>>>>>> SET(Required_Packages
>>>>>>>  ITK
>>>>>>> )
>>>>>>>
>>>>>>> #this foreach loads all of the packages that you specified as
>>>>>>> required.
>>>>>>> #It shouldn't need to be modified.
>>>>>>> FOREACH(Package ${Required_Packages})
>>>>>>> LOADPACKAGE(${Package})
>>>>>>> ENDFOREACH(Package)
>>>>>>>
>>>>>>> #Construct VXL/VNL includes
>>>>>>> SET(VXL_INCLUDE_DIRS
>>>>>>>  ${ITK_SOURCE_DIR}/Utilities/vxl
>>>>>>>  ${ITK_SOURCE_DIR}/Utilities/vxl/core
>>>>>>>  ${ITK_SOURCE_DIR}/Utilities/vxl/core/vnl
>>>>>>>  ${ITK_SOURCE_DIR}/Utilities/vxl/vcl)
>>>>>>>
>>>>>>>
>>>>>>> 2008/7/11 Oleksandr Dzyubak <adzyubak at gmail.com>:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> Hi Daniel,
>>>>>>>>
>>>>>>>> Thanks for quick response.
>>>>>>>>
>>>>>>>> 1) Yes. My ITK_DIR is  /usr/local/lib/InsightToolkit
>>>>>>>>
>>>>>>>> 2) Yes.
>>>>>>>> dzyubak at debian: /vnl$ pwd
>>>>>>>> /usr/local/include/InsightToolkit/Utilities/vxl/core/vnl
>>>>>>>>
>>>>>>>> dzyubak at debian: /vnl$ ls | grep vnl_math
>>>>>>>> vnl_math.h
>>>>>>>>
>>>>>>>> 3) After adding a line as you advised
>>>>>>>> MESSAGE(SEND_ERROR ${VXL_INCLUDE_DIRS}) # Add this line (it is now
>>>>>>>> located
>>>>>>>> on the line 41),
>>>>>>>> I got an error message below.
>>>>>>>>
>>>>>>>> CMake Error at CMakeLists.txt:41 (MESSAGE):
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> /Utilities/vxl/Utilities/vxl/core/Utilities/vxl/core/vnl/Utilities/vxl/vcl
>>>>>>>>
>>>>>>>> 4) The content of the flags.make file is below.
>>>>>>>>
>>>>>>>> *********Begin flags.make ********
>>>>>>>> # CMAKE generated file: DO NOT EDIT!
>>>>>>>> # Generated by "Unix Makefiles" Generator, CMake Version 2.6
>>>>>>>>
>>>>>>>> # compile CXX with /usr/bin/c++
>>>>>>>> CXX_FLAGS =   -ftemplate-depth-50 -Wall
>>>>>>>> -I/usr/local/include/InsightToolkit/Review
>>>>>>>> -I/usr/local/include/InsightToolkit/Patented
>>>>>>>> -I/usr/local/include/InsightToolkit/gdcm/src
>>>>>>>> -I/usr/local/include/InsightToolkit/gdcm
>>>>>>>> -I/usr/local/include/InsightToolkit/Utilities/vxl/core
>>>>>>>> -I/usr/local/include/InsightToolkit/Utilities/vxl/vcl
>>>>>>>> -I/usr/local/include/InsightToolkit/Utilities/vxl/v3p/netlib
>>>>>>>> -I/usr/local/include/InsightToolkit/Utilities
>>>>>>>> -I/usr/local/include/InsightToolkit/Utilities/itkExtHdrs
>>>>>>>> -I/usr/local/include/InsightToolkit/Utilities/nifti/znzlib
>>>>>>>> -I/usr/local/include/InsightToolkit/Utilities/nifti/niftilib
>>>>>>>> -I/usr/local/include/InsightToolkit/Utilities/expat
>>>>>>>> -I/usr/local/include/InsightToolkit/Utilities/DICOMParser
>>>>>>>> -I/usr/local/include/InsightToolkit/Utilities/NrrdIO
>>>>>>>> -I/usr/local/include/InsightToolkit/Utilities/MetaIO
>>>>>>>> -I/usr/local/include/InsightToolkit/SpatialObject
>>>>>>>> -I/usr/local/include/InsightToolkit/Numerics/NeuralNetworks
>>>>>>>> -I/usr/local/include/InsightToolkit/Numerics/Statistics
>>>>>>>> -I/usr/local/include/InsightToolkit/Numerics/FEM
>>>>>>>> -I/usr/local/include/InsightToolkit/IO
>>>>>>>> -I/usr/local/include/InsightToolkit/Numerics
>>>>>>>> -I/usr/local/include/InsightToolkit/Common
>>>>>>>> -I/usr/local/include/InsightToolkit/BasicFilters
>>>>>>>> -I/usr/local/include/InsightToolkit/Algorithms
>>>>>>>> -I/usr/local/include/InsightToolkit
>>>>>>>> -I/mnt/Public/ITK_Test/Fast_Marching_Minimal_Path_Extraction_in_ITK
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> -I/mnt/Public/ITK_Test/Fast_Marching_Minimal_Path_Extraction_in_ITK/Source
>>>>>>>> -I/Utilities/vxl -I/Utilities/vxl/core -I/Utilities/vxl/core/vnl
>>>>>>>> -I/Utilities/vxl/vcl
>>>>>>>> CXX_DEFINES =
>>>>>>>>
>>>>>>>> *********Begin flags.make ********
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks for your help,
>>>>>>>>
>>>>>>>> Alex
>>>>>>>>
>>>>>>>> Dan Mueller wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Hi Alex,
>>>>>>>>>
>>>>>>>>> Sorry, I meant "itkSingleImageCostFunction.txx".
>>>>>>>>>
>>>>>>>>> Yes, the main CMakeLists.txt should take care of everything (at
>>>>>>>>> least
>>>>>>>>> it does on my builds and the IJ).
>>>>>>>>>
>>>>>>>>> Basically the problem seems to be that "vnl_math.h" is not being
>>>>>>>>> included. It should be a simple matter of some detective work to
>>>>>>>>> find
>>>>>>>>> out where things go wrong.
>>>>>>>>>
>>>>>>>>> Can you please check a couple of things:
>>>>>>>>> 1. When you configure the project, I assume you are specifying the
>>>>>>>>> ITK_DIR variable?
>>>>>>>>> 2. Do you have the "{ITK_SOURCE_DIR}\Utilities\vxl\core\vnl"
>>>>>>>>> directory? Is the "vnl_math.h" file inside?
>>>>>>>>> 3. Can you please add the following line to the main CMakeLists.txt
>>>>>>>>> and let me know the result?
>>>>>>>>> #Construct VXL/VNL includes
>>>>>>>>> SET(VXL_INCLUDE_DIRS
>>>>>>>>> ${ITK_SOURCE_DIR}/Utilities/vxl
>>>>>>>>> ${ITK_SOURCE_DIR}/Utilities/vxl/core
>>>>>>>>> ${ITK_SOURCE_DIR}/Utilities/vxl/core/vnl
>>>>>>>>> ${ITK_SOURCE_DIR}/Utilities/vxl/vcl)
>>>>>>>>> MESSAGE(SEND_ERROR ${VXL_INCLUDE_DIRS}) # Add this line
>>>>>>>>> 4. Can you please report the include paths generated by CMake? They
>>>>>>>>> should include the directories shown above. (On my cygwin system,
>>>>>>>>> these go into
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> "{MinimalPath_BUILD_DIR}\Source\CMakeFiles\MinimalPathMain.dir\flags.make")
>>>>>>>>>
>>>>>>>>> Let me know regarding these things.
>>>>>>>>>
>>>>>>>>> Cheers, Dan
>>>>>>>>>
>>>>>>>>> 2008/7/10 Oleksandr Dzyubak <adzyubak at gmail.com>:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Hi Daniel,
>>>>>>>>>>
>>>>>>>>>> Thanks for your prompt reply.
>>>>>>>>>> I am using Linux(Debian) or UNIX(FreeBSD). Mostly Linux.
>>>>>>>>>> Yes, I am using rev.6. Just downloaded once again to make sure it
>>>>>>>>>> is.
>>>>>>>>>> There no such a file like "itkSingleImageCostFunction.cxx" in the
>>>>>>>>>> downloaded
>>>>>>>>>> archive.
>>>>>>>>>> Did you mean the template file "itkSingleImageCostFunction.txx"?
>>>>>>>>>>
>>>>>>>>>> Following your advice, I have changed the includes but no magic
>>>>>>>>>> happened.
>>>>>>>>>> The same error.
>>>>>>>>>>
>>>>>>>>>> I thought that it is the CMakeLists.txt in concert with cmake
>>>>>>>>>> which
>>>>>>>>>> should
>>>>>>>>>> take care of that.
>>>>>>>>>> It is not?
>>>>>>>>>>
>>>>>>>>>> Regards,
>>>>>>>>>>
>>>>>>>>>> Alex
>>>>>>>>>>
>>>>>>>>>> Dan Mueller wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Hi Alex,
>>>>>>>>>>>
>>>>>>>>>>> Strange. It compiles fine for me on Windows with Visual Studio
>>>>>>>>>>> 8.0
>>>>>>>>>>> and
>>>>>>>>>>> on the IJ Testing Environment (some flavour of Linux, I think)...
>>>>>>>>>>>
>>>>>>>>>>> Are you using revision 6?
>>>>>>>>>>>
>>>>>>>>>>> Perhaps try changing this line in itkSingleImageCostFunction.cxx
>>>>>>>>>>> #include "vnl_math.h"
>>>>>>>>>>> to
>>>>>>>>>>> #include "vnl/vnl_math.h"
>>>>>>>>>>>
>>>>>>>>>>> Let me know if you still have problems.
>>>>>>>>>>>
>>>>>>>>>>> Regards, Dan
>>>>>>>>>>>
>>>>>>>>>>> 2008/7/10 Oleksandr Dzyubak <adzyubak at gmail.com>:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Dear ITKers,
>>>>>>>>>>>>
>>>>>>>>>>>> After reading the articles by J. Sethian,
>>>>>>>>>>>> I decided to downloaded the Fast Marching Minimal Path
>>>>>>>>>>>> Extraction
>>>>>>>>>>>> program
>>>>>>>>>>>> and give it a try.
>>>>>>>>>>>>
>>>>>>>>>>>> Surprisingly I could not even compile it.
>>>>>>>>>>>> The errors I got are below. Did somebody try it?
>>>>>>>>>>>>
>>>>>>>>>>>> Just in case. I am using Debian Linux with
>>>>>>>>>>>> gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21).
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,,
>>>>>>>>>>>> Alex
>>>>>>>>>>>>
>>>>>>>>>>>> *********Begin Errors********
>>>>>>>>>>>>
>>>>>>>>>>>> dzyubak at debian: /BUILD$ make
>>>>>>>>>>>> Scanning dependencies of target MinimalPathMain
>>>>>>>>>>>> [ 33%] Building CXX object
>>>>>>>>>>>> Source/CMakeFiles/MinimalPathMain.dir/main.o
>>>>>>>>>>>> In file included from
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> /mnt/Public/ITK_Test/Fast_Marching_Minimal_Path_Extraction_in_ITK/Source/itkSingleImageCostFunction.h:147,
>>>>>>>>>>>>         from
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> /mnt/Public/ITK_Test/Fast_Marching_Minimal_Path_Extraction_in_ITK/Source/itkArrivalFunctionToPathFilter.h:23,
>>>>>>>>>>>>         from
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> /mnt/Public/ITK_Test/Fast_Marching_Minimal_Path_Extraction_in_ITK/Testing/MinimalPathTests.cxx:39,
>>>>>>>>>>>>         from
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> /mnt/Public/ITK_Test/Fast_Marching_Minimal_Path_Extraction_in_ITK/Source/main.cxx:10:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> /mnt/Public/ITK_Test/Fast_Marching_Minimal_Path_Extraction_in_ITK/Source/itkSingleImageCostFunction.txx:20:22:
>>>>>>>>>>>> error: vnl_math.h: No such file or directory
>>>>>>>>>>>> make[2]: *** [Source/CMakeFiles/MinimalPathMain.dir/main.o]
>>>>>>>>>>>> Error 1
>>>>>>>>>>>> make[1]: *** [Source/CMakeFiles/MinimalPathMain.dir/all] Error 2
>>>>>>>>>>>> make: *** [all] Error 2
>>>>>>>>>>>> dzyubak at debian: /BUILD$
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> **********End Errors******
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Insight-users mailing list
>>>>>>>>>>>> Insight-users at itk.org
>>>>>>>>>>>> http://www.itk.org/mailman/listinfo/insight-users
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Insight-developers mailing list
>>>>>>> Insight-developers at itk.org
>>>>>>> http://www.itk.org/mailman/listinfo/insight-developers
>>>>>>>
>>>>>>>
>>
>
>


More information about the Insight-developers mailing list