[Insight-users] [vtkusers] Trying to connect ITK - VTK - ITK

Bill Lorensen bill.lorensen at gmail.com
Mon Apr 11 11:18:56 EDT 2011


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20110411/2a7fc2bb/attachment.htm>


More information about the Insight-users mailing list