[Insight-users] vtk polydata import / export

imho imho at bephp . com
Tue, 15 Jul 2003 15:52:33 +0200


This is a multi-part message in MIME format.
--------------070406080708050108040501
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luis,
the error that I have is a runtime error, I didn't add it because I have
a message in front of it, and I can't copy paste it. Now I send you a
print screen :) Maybe I didn't understand it rightly.

The pixelType that I've for ITK is float :
...
const unsigned int Dimension = 3;
class registrationITK
{
public:
...
     typedef float PixelType;
     typedef itk::Image<PixelType, Dimension> ImageType;
...
private :
...
     ImageType::Pointer imageSource;
     ImageType::Pointer imageTarget;

}

thanks for your help

Imho.



Luis Ibanez wrote:

>
> Hi Imho,
>
> Your description is a bit confusing.
>
> You may want to verify your processing stage by stage.
>
> A pipeline:
>
> vtkExporter-->itkImporter-->itkExporter-->vtkImporter
>
> Should work without problem.
>
> You may want to verify that you are using compatible
> pixel types. What is the pixel type that you are using
> for instantiating the ITK images ?
>
> >
> > back in vtk I still have a vtkImageData error.
> >
> What is the error message that you get for vtkImageData ?
> is this a compilation error ? a link error ? or a runtime error ?
>
> Posting the error message can always help   :-)
>
>
>
>    Luis
>
>
>
> ---------------
> imho wrote:
>
>> Hi Luis,
>>
>> I've succeed converting vtkPolyData to vtkImageData, it deforms my 
>> vtkPolyData and is very slow but I'll try other parameters...
>> the principal is that I have a vtkImageData to put in the exporter / 
>> importer pipe-line.
>> And there I have a problem. itk returns a null imageData, so I've 
>> tried a simple pipe-line to itk where I do nothing, just this :
>>
>> ------------------------------------------
>> in itk class :
>> registrationITK::registrationITK(vtkImageImport* vtkImporter, 
>> vtkImageExport *vtkExporter, vtkImageExport *vtkExporter2)
>> {      itkImporter = ImageImportType::New();
>>    itkImporter2 = ImageImportType::New();
>>    itkExporter = ImageExportType::New();
>>
>>    itkExporter->SetInput(itkImporter->GetOutput());
>>      ConnectPipelines(vtkExporter, itkImporter);
>>    ConnectPipelines(vtkExporter2, itkImporter2);
>>    ConnectPipelines(itkExporter, vtkImporter);            
>> itkImporter->Update();
>>    itkImporter2->Update();
>> }
>> -------------------------------
>> in vtk class :
>> ...
>>
>>    vtkImporter4 = vtkImageImport::New();
>> ...
>>    vtkExporter4 = vtkImageExport::New();
>>    vtkExporter5 = vtkImageExport::New();
>>
>>    poly[0] = vtkPolyData::New();
>>    poly[1] = vtkPolyData::New();
>>    polyLive = vtkPolyData::New();
>>
>>    imageModel = vtkImageData::New();
>>    imageModelLive= vtkImageData::New();
>>
>>    polyToImage = vtkImplicitModeller::New();
>>    polyLiveToImage = vtkImplicitModeller::New();
>> ...
>>        polyToImage->SetInput(poly[0]);
>>        polyLiveToImage->SetInput(polyLive);
>>              polyToImage->SetSampleDimensions(10, 10, 10);
>>        polyToImage->SetMaximumDistance(0.25);
>>           polyLiveToImage->SetSampleDimensions(10, 10, 10);
>>        polyLiveToImage->SetMaximumDistance(0.25);
>>
>>        imageModel = polyToImage->GetOutput();
>>        imageModelLive = polyLiveToImage->GetOutput();
>>                      vtkExporter4->SetInput(imageModel);
>>        vtkExporter5->SetInput(imageModelLive);
>>
>>        regITK = new registrationITK(vtkImporter4, vtkExporter4, 
>> vtkExporter5);
>>
>>        cast->SetInput(vtkImporter4->GetOutput());
>>        castTo3D->SetInput(vtkImporter4->GetOutput());
>>
>>        isRegITK = true;
>>
>> ...
>>        poly[0]->CopyStructure(ApplyDemonRegistration());
>> ------------------------------------------------
>> vtkPolyData* sourceControlVTK::ApplyDemonRegistration()
>> {
>>    vtkPolyData* pol = vtkPolyData::New();
>>
>> //  regITK->InitDemonRegistration(progress); // dans controlQt
>>      imageModel = vtkImporter4->GetOutput();
>>    pol = imageToPolyMaker->makePoly(imageModel);
>>    return pol;
>>
>> }
>>
>> back in vtk I still have a vtkImageData error.
>> So I resume, when I do :
>> vtkPolyData->vtkImageData->vtkPolyData
>> my poly is'nt allright but I have something to show
>>
>> but if I do :
>> vtkPolyData->vtkImageData->vtkExporter->itkImporter->itkExporter->vtkImporter->vtkImagedata->vtkPolyData 
>> with or without the demonFilter
>> I have nothing back :/
>> I surely do something wrong, but I can't find what.
>> Maybe you can help me (again).
>>
>> thanks a lot.
>>
>> Imho.
>>
>
> .
>


--------------070406080708050108040501
Content-Type: image/gif;
 name="vtk-error.gif"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="vtk-error.gif"

R0lGODlh7AHUAbMAAAAAANbWzv//////////////////////////////////////////////
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
--------------070406080708050108040501--