[vtkusers] Trying to connect ITK - VTK - ITK
Bc. Michal Srna
michal at srna.info
Mon Apr 11 11:32:22 EDT 2011
Did it, no error message at all (I use console application).
Here I marked, where the program crashes in file vtkImageImport.cxx, it's on
line 7
1void vtkImageImport::InvokeExecuteInformationCallbacks()
2{
3 if (this->WholeExtentCallback)
4 {
5 tryCatchMacro(
6 this->SetWholeExtent(
7 (this->WholeExtentCallback)(this->CallbackUserData)),
8 "Calling WholeExtentCallback: ");
9 }
2011/4/11 Bill Lorensen <bill.lorensen at gmail.com>
> Put a try/catch around the Update();
>
>
> On Mon, Apr 11, 2011 at 11:16 AM, Bc. Michal Srna <michal at srna.info>wrote:
>
>> Tried, but didn't help.
>>
>> I also tried to use simple example from
>> http://www.itk.org/CourseWare/Training/GettingStarted-II.pdf (slide 18)
>> and tried just to connect simple readed 2D tiff image (via ITK) to the VTK
>> pipeline via ImageToVTKImageFilter like this:
>>
>> typedef itk::Image<unsigned short,2> ImageType;
>> typedef itk::ImageFileReader<ImageType> ReaderType;
>> typedef itk::ImageToVTKImageFilter<ImageType> ConnectorType;
>>
>> ReaderType::Pointer reader= ReaderType::New();
>> ConnectorType::Pointer connector= ConnectorType::New();
>>
>> reader->SetFileName( argv[1]);
>> connector->SetInput( reader->GetOutput() );
>>
>> connector-> Update ();
>>
>> Code runs, no compile errors and when running it crashes on the same spot
>> in file vtkImageImport.cxx just when executing "connector-> Update ()". So
>> the problem is somewhere where executing connection of ITK pipeline to the
>> VTK pipeline.
>>
>> Here is the report of crash:
>>
>> First-chance exception at 0x01e1e219 in test.exe: 0xC0000005: Access
>> violation reading location 0x00000000.
>> Unhandled exception at 0x01e1e219 in test.exe: 0xC0000005: Access
>> violation reading location 0x00000000.
>> The program '[3968] test.exe: Native' has exited with code 0 (0x0).
>>
>>
>>
>>
>> 2011/4/11 Bill Lorensen <bill.lorensen at gmail.com>
>>
>>> Try changing:
>>>
>>> blend->SetInput(0,connector_ITK_to_VTK_alpha_data2->GetOutput());
>>> to
>>> blend->SetInput(1,connector_ITK_to_VTK_alpha_data2->GetOutput());
>>>
>>>
>>> On Mon, Apr 11, 2011 at 10:15 AM, Michal Srna <kositch at seznam.cz> wrote:
>>>
>>>> Hello dear VTK users,
>>>>
>>>> I would like to connect two 3D images from ITK (same dimensions) to VTK
>>>> and blend them using vtkImageBlend. The problem is, that when I run the
>>>> code, it crashes on this part of the code of vtkImageImport.cxx
>>>>
>>>> if (this->WholeExtentCallback)
>>>> {
>>>> tryCatchMacro(
>>>> this->SetWholeExtent(
>>>> -> (this->WholeExtentCallback)(this->CallbackUserData)),
>>>> "Calling WholeExtentCallback: ");
>>>> }
>>>>
>>>> Here is my corresponding code. "TransformedImportFilter" and
>>>> "FixedImportFilter" are outputs of ITKImageFilter, which connects my image
>>>> data from memory into the ITK pipeline:
>>>>
>>>> /*connecting ITK to VTK*/
>>>> typedef itk::ImageToVTKImageFilter<
>>>> TransformedImageType > ITK_to_VTK_ConnectorType;
>>>>
>>>> ITK_to_VTK_ConnectorType::Pointer
>>>> connector_ITK_to_VTK_alpha_data1 = ITK_to_VTK_ConnectorType::New();
>>>> ITK_to_VTK_ConnectorType::Pointer
>>>> connector_ITK_to_VTK_alpha_data2 = ITK_to_VTK_ConnectorType::New();
>>>>
>>>>
>>>> connector_ITK_to_VTK_alpha_data1->SetInput(
>>>> TransformedImportFilter->GetOutput() );
>>>>
>>>> connector_ITK_to_VTK_alpha_data2->SetInput( FixedImportFilter->GetOutput()
>>>> );
>>>>
>>>> /*blending image data*/
>>>> vtkSmartPointer<vtkImageBlend> blend =
>>>> vtkSmartPointer<vtkImageBlend>::New();
>>>> blend->SetOpacity(0, 0.5);
>>>> blend->SetOpacity(1, 0.5);
>>>>
>>>> blend->SetInput(0,connector_ITK_to_VTK_alpha_data1->GetOutput());
>>>>
>>>> blend->SetInput(0,connector_ITK_to_VTK_alpha_data2->GetOutput());
>>>>
>>>> /*connecting VTK to ITK*/
>>>> typedef itk::VTKImageToImageFilter<
>>>> TransformedImageType > VTK_to_ITK_ConnectorType;
>>>>
>>>> VTK_to_ITK_ConnectorType::Pointer
>>>> connector_VTK_to_ITK = VTK_to_ITK_ConnectorType::New();
>>>>
>>>> connector_VTK_to_ITK->SetInput(
>>>> blend->GetOutput() );
>>>>
>>>> /*writing the data into DICOM*/
>>>> typedef itk::ImageFileWriter<
>>>> TransformedImageType > WriterType;
>>>> WriterType::Pointer writer =
>>>> WriterType::New();
>>>>
>>>> writer->SetFileName(output_alpha_visualization);
>>>>
>>>> writer->SetInput(connector_VTK_to_ITK->GetOutput() );
>>>> writer->Update();
>>>>
>>>> I think the problem is already in process of importing data from ITK to
>>>> VTK. I am using ITKv4 and VTK 5.6.1 on Windows platform with MVSC++.
>>>>
>>>> I will be happy, if someone will help me.
>>>>
>>>> Best regards,
>>>>
>>>> Pavli
>>>> _______________________________________________
>>>> Powered by www.kitware.com
>>>>
>>>> Visit other Kitware open-source projects at
>>>> http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Please keep messages on-topic and check the VTK FAQ at:
>>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>>
>>>
>>>
>>
>>
>> --
>> S pozdravem Bc. Michal Srna
>>
>> Fotografické portfolio:
>> http://michalsrna.cz
>>
>
>
--
S pozdravem Bc. Michal Srna
Fotografické portfolio:
http://michalsrna.cz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20110411/1d5a3cba/attachment.htm>
More information about the vtkusers
mailing list