[Insight-users] crashes N-D Linear Time Exact Signed Euclidean Distance Transform

Oleksandr Dzyubak adzyubak at gmail.com
Thu Jun 19 17:37:40 EDT 2008


Hi Gaëtan,

The email with the source tree gets bounced.
I believe that is because I sent it to the list.
What address should I send it to?

Alex

Gaëtan Lehmann wrote:
>
> Hi,
>
> I'm afraid I can't reproduce any of the problems you have.
> Can you send me your source tree? You seem to have put everything in a 
> “Lehmann” directory — maybe with it, I would be able to reproduce them.
>
> Regards,
>
> Gaëtan
>
>
>
> Le 3 juin 08 à 21:36, Oleksandr Dzyubak a écrit :
>
>> Hi Gaëtan,
>>
>> Thanks for your help.
>>
>> I have rebuilt ITK to include all the changes made recently.
>> Following the link you provided, I downloaded your version of the 
>> filter.
>> During the compilation I got some warnings but was able to get an 
>> executable (see below).
>> However when I ran the executable, the program crashed again
>> with a different error message though (before it was malloc() from 
>> AnalyzeIO).
>>
>> **************** Begin Error Message *********
>> dzyubak at debian: /Lehmann$ ./SignedMaurerDistanceMapImageFilterTest 
>> SquareBinary201.hdr test.hdr
>> SignedMaurerDistanceMapImageFilterTest: 
>> /usr/local/include/InsightToolkit/Utilities/vxl/core/vnl/vnl_vector.h:168: 
>> T& vnl_vector<T>::operator()(unsigned int) [with T = double]: 
>> Assertion `i<size()' failed.
>> Aborted
>> ************** End Error Message ********
>>
>>
>> *********** Begin Compilation Warnings ****
>> dzyubak at debian: /BUILD$ make
>> Scanning dependencies of target SignedMaurerDistanceMapImageFilterTest
>> [100%] Building CXX object 
>> CMakeFiles/SignedMaurerDistanceMapImageFilterTest.dir/itkSignedMaurerDistanceMapImageFilterTest.cxx.o 
>>
>> /home/dzyubak/Test/N-D_Linear_Time_Exact_Signed_Euclidean_Distance_Transform/Lehmann/itkBinaryBorderImageFilter.txx: 
>> In member function 'void itk::BinaryBorderImageFilter<TInputImage, 
>> TOutputImage>::CompareLines(std::vector<itk::BinaryBorderImageFilter<TInputImage, 
>> TOutputImage>::runLength, 
>> std::allocator<itk::BinaryBorderImageFilter<TInputImage, 
>> TOutputImage>::runLength> >&, const 
>> std::vector<itk::BinaryBorderImageFilter<TInputImage, 
>> TOutputImage>::runLength, 
>> std::allocator<itk::BinaryBorderImageFilter<TInputImage, 
>> TOutputImage>::runLength> >&) [with TInputImage = itk::Image<double, 
>> 3u>, TOutputImage = itk::Image<double, 3u>]':
>> /home/dzyubak/Test/N-D_Linear_Time_Exact_Signed_Euclidean_Distance_Transform/Lehmann/itkBinaryBorderImageFilter.txx:250:   
>> instantiated from 'void itk::BinaryBorderImageFilter<TInputImage, 
>> TOutputImage>::ThreadedGenerateData(const typename 
>> TOutputImage::RegionType&, int) [with TInputImage = 
>> itk::Image<double, 3u>, TOutputImage = itk::Image<double, 3u>]'
>> /home/dzyubak/Test/N-D_Linear_Time_Exact_Signed_Euclidean_Distance_Transform/Lehmann/itkSignedMaurerDistanceMapImageFilterTest.cxx:69:   
>> instantiated from here
>> /home/dzyubak/Test/N-D_Linear_Time_Exact_Signed_Euclidean_Distance_Transform/Lehmann/itkBinaryBorderImageFilter.txx:405: 
>> warning: unused variable 'ee1'
>> Linking CXX executable SignedMaurerDistanceMapImageFilterTest
>> [100%] Built target SignedMaurerDistanceMapImageFilterTest
>>
>> ********* End Compilation Warnings *******
>>
>> Gaëtan Lehmann wrote:
>>>
>>> Hi,
>>>
>>> The SignedMaurerDistanceMapImageFilter won't work when the input 
>>> image is 2D but the filter is 3D — the size is 1 on one dimension.
>>> I have fixed that in an external repository, with some other changes to
>>>
>>>  a. avoid spending so much time in the border detection
>>>  b. multithread it
>>>  c. make it work with any sizes on all the dimensions
>>>
>>> That work is available at
>>>
>>>  http://voxel.jouy.inra.fr/darcs/contrib-itk/watershed
>>>
>>> You'll have to take the classes SignedMaurerDistanceMapImageFilter 
>>> and BinaryBorderImageFilter.
>>>
>>> I'll try to put b. and c. in ITK before the next release.
>>> a. has to pass through the process of the peer review in the insight 
>>> journal before being integrated in ITK.
>>>
>>> Regards,
>>>
>>> Gaëtan
>>>
>>>
>>> Le 2 juin 08 à 21:18, Oleksandr Dzyubak a écrit :
>>>
>>>> Hi Bill,
>>>>
>>>> Now I am a bit confused by what you are saying.
>>>>
>>>> 1) You say that it works for 3D but does not for 2D.
>>>> I cannot understand that since 2D dimensionality is a particular 
>>>> case of 3D.
>>>> Lets say 2D is a 3D with just one z-component. From my prospective, 
>>>> it has to work
>>>> for 2D if it does for 3D. Opposite is not necessary true though.
>>>>
>>>> 2) If I comment the writer out, the program still crashes with the 
>>>> same error.
>>>>
>>>> 3) All my images are in the Analyze75 format
>>>> and while using the other ITK filters I have not had any problems 
>>>> so far.
>>>> (I mean with ITK Analyze reader/writer, except orientations, of 
>>>> course).
>>>>
>>>> Do you mean that even though my executables did not complain,
>>>> the results I was getting could be wrong since I used ITK Analyze 
>>>> reader/writer?
>>>>
>>>> If so, in what fashion could the final results be wrong?
>>>>
>>>> Is it error-prone for some particular platform/compiler
>>>> (Linux Debian with gcc 4.1.2 in my case) or it is more general case?
>>>>
>>>> How severe does it affect the final results?
>>>>
>>>> Thanks for your help,
>>>>
>>>> Alex
>>>>
>>>>
>>>> Bill Lorensen wrote:
>>>>> Oleksandr,
>>>>>
>>>>> There are some known problems in the ITK Analyze reader/writer when
>>>>> the images are 2D and not 3D. I think the read part has been fixed
>>>>> recently. However, the write part still has problems. If your images
>>>>> are 3D, then all should be fine. Until we fix this 2D Analyze image
>>>>> problem, I'm afraid you cannot run the filters.
>>>>>
>>>>> Bill
>>>>>
>>>>> On Sun, Jun 1, 2008 at 1:07 PM, Oleksandr Dzyubak 
>>>>> <adzyubak at gmail.com> wrote:
>>>>>
>>>>>> Hi Bill,
>>>>>>
>>>>>> This time I try to be more accurate.
>>>>>>
>>>>>> 1) I downloaded ITK from CVS, compiled with the RelWithDeb flag, and
>>>>>> installed on my Linux box.
>>>>>> 2) I have Debian Etch with gcc 4.1.2
>>>>>> 3) The example itkSignedMaurerDistanceMapImageFilterTest.cxx was 
>>>>>> taken
>>>>>> from ITK distro and not from IJ.
>>>>>>
>>>>>> Insight/Testing/Code/BasicFilters/itkSignedMaurerDistanceMapImageFilterTest.cxx 
>>>>>>
>>>>>>
>>>>>> 4) Example was compiled in debug mode.
>>>>>> 5) As you advised, the example was run on both 
>>>>>> SquareBinary201.png and
>>>>>> SquareBinary201.hdr.
>>>>>>
>>>>>> Results.
>>>>>> As you predicted, the example has processed the *.png image taken 
>>>>>> from ITK
>>>>>> distro resulting
>>>>>> in a nice looking map.
>>>>>>
>>>>>> dzyubak at debian: /BUILD$ ./SignedMaurerDistanceMapImageFilterTest
>>>>>> SquareBinary201.png test_png.hdr
>>>>>> WARNING: In /root/Insight/Code/IO/itkAnalyzeImageIO.cxx, line 1280
>>>>>> AnalyzeImageIO (0x8169a98): ERROR: Analyze 7.5 File Format Only 
>>>>>> Allows RPI,
>>>>>> PIR, and RIP Orientation
>>>>>>
>>>>>> However when I tried to run it on a real stuff (all my images in 
>>>>>> Analyze75
>>>>>> format), the same image but
>>>>>> taken from IJ archive (SquareBinary201.hdr), it crashes.
>>>>
>>>> _______________________________________________
>>>> Insight-users mailing list
>>>> Insight-users at itk.org
>>>> http://www.itk.org/mailman/listinfo/insight-users
>>>
>>> --Gaëtan Lehmann
>>> Biologie du Développement et de la Reproduction
>>> INRA de Jouy-en-Josas (France)
>>> tel: +33 1 34 65 29 66    fax: 01 34 65 29 09
>>> http://voxel.jouy.inra.fr  http://www.mandriva.org
>>> http://www.itk.org  http://www.clavier-dvorak.org
>>>
>>
>
> --Gaëtan Lehmann
> Biologie du Développement et de la Reproduction
> INRA de Jouy-en-Josas (France)
> tel: +33 1 34 65 29 66    fax: 01 34 65 29 09
> http://voxel.jouy.inra.fr  http://www.mandriva.org
> http://www.itk.org  http://www.clavier-dvorak.org
>



More information about the Insight-users mailing list