[vtkusers] Addition Assign AlgorithmOutput? Merge?

Bill Lorensen bill.lorensen at gmail.com
Fri Jun 19 08:01:20 EDT 2009


Move
vtkContourFilter *skinExtractor = vtkContourFilter::New();
vtkPolyDataConnectivityFilter *connect = vtkPolyDataConnectivityFilter::New();
inside the while loop. Place
skinExtractor->Delete();
connect->Delete();
at the end of the loop after
reader->Update();

The problem with the existing code is that the two filters are reusing
their outputs. You need to disconnect the pipeline from the output and
this is one way to do it.

Bill

On Fri, Jun 19, 2009 at 5:01 AM, Chris N<alucard006 at msn.com> wrote:
> I'm still stuck on merge filtered data I described below.  I start off with
>
> vtkDICOMImageReader *reader = vtkDICOMImageReader::New();
> use, SetFIleName();
>
> This I find allows me to render the skin and filter out extract regions, but
> I can quite find the correct method to use my new filter data.  I've been
> using this to merge my data.
>
> //MERGE DATA
> vtkAppendPolyData *append = vtkAppendPolyData::New();
> append->AddInputConnection(connect->GetOutputPort());
>
> I use append object to construct my actor object but all I see for a result
> is my last file filtered.  Anybody have experience in this?
>
> ________________________________
> From: alucard006 at msn.com
> To: mike.jackson at bluequartz.net
> CC: vtkusers at vtk.org
> Subject: RE: [vtkusers] Addition Assign AlgorithmOutput? Merge?
> Date: Tue, 16 Jun 2009 07:15:55 -0700
>
> Thanks you for the advice about vtkAppendDataset but I seem to only run
> across vtkAppendCompositeDataLeaves, vtkAppendFilter, vtkAppendPoints,
> vtkAppendPolyData, and vtkAppendSelection.  I tried to use vtkAppendPolyData
> but when I use 30 files of my data the only result I get back is the last
> file filtered from my 30, which is just a 2D image.  I also get same results
> with vtkMergeFilter.  Here's a piece of code where I'm performing the merge
> maybe you can see something that I am not doing right.  I defined everything
> here so hopefully you can understand my approach a little better.  Any thing
> else you can or anybody else can suggest in order for me to merge my
> filtered files into one 3D image?
>
>         int index = 0;
>         int MAX_FILES = 30;
>         string filename;
>         const char *modfilename;
>
>         vtkContourFilter *skinExtractor = vtkContourFilter::New();
>         vtkPolyDataConnectivityFilter *connect =
> vtkPolyDataConnectivityFilter::New();
>         vtkAppendPolyData *append = vtkAppendPolyData::New();
>
>         while(index < MAX_FILES)
>         {
>                 //SKIN RENDER---
>                 skinExtractor->SetInputConnection(reader->GetOutputPort());
>                 skinExtractor->SetValue(0, -400);
>
>                 //CONNECTIVITY---extract largest region
>                 connect->SetInputConnection(skinExtractor->GetOutputPort());
>                 connect->SetExtractionModeToLargestRegion();
>                 connect->Update();
>
>                 //MERGE DATA
>                 append->AddInputConnection(connect->GetOutputPort());
>
>                 //Read Next File
>                 index++;
>                 if(index < MAX_FILES)
>                 {
>                     filename = DATADIR + files->GetValue(index);
> //files->GetValue(index) --- returnes the file name from data directory.
>                     modfilename = filename.c_str();
>                 }
>
>                 reader->SetFileName(modfilename);  //using
> vtkDICOMImageReader.h
>                 reader->Update();
>         }
>
> //Then...on setting up my Actor and window for my 3D image of the new merged
> data.  using the variable "append->GetOutputPort()" down /the pipeline with
> all the filtered files.
>
> Thank you,
> Chris
>
>> CC: vtkusers at vtk.org
>> From: mike.jackson at bluequartz.net
>> To: alucard006 at msn.com
>> Subject: Re: [vtkusers] Addition Assign AlgorithmOutput? Merge?
>> Date: Wed, 3 Jun 2009 12:19:31 -0400
>>
>> vtkAppendDataset.
>>
>> _________________________________________________________
>> Mike Jackson mike.jackson at bluequartz.net
>> BlueQuartz Software www.bluequartz.net
>> Principal Software Engineer Dayton, Ohio
>>
>>
>>
>> On Jun 3, 2009, at 12:03 PM, Chris N wrote:
>>
>> > I have an idea about filtering all my DICOM images of a human head
>> > in the format of *.DCM before creating my actor from
>> > vtkAlgorithmOutput, one feature I'm not sure about is if or how vtk
>> > can perform an addition assign like operation with AlgorithmOutput.
>> > Or somehow merge the two different datas into one AlgorithmOutput.
>> > Anyway, here's my idea of what I'm trying to do. Using VTK, C++,
>> > and I am new to VTK.
>> >
>> >
>> > LOOP(imagenumber < maximagenumber)
>> > {
>> > //Reads in one 2D DICOM image
>> > vtkDICOMImageReader::SetFileName( "DICOMdata" imagenumber++);
>> >
>> > //Set value for skin data only from my DICOM data
>> > vtkContourFilter *skinExtractor = vtkContourFilter::New();
>> > skinExtractor->SetInputConnection(reader->GetOutputPort());
>> > skinExtractor->SetValue(0, -400);
>> >
>> > //Extract the largest Region
>> > vtkPolyDataConnectivityFilter *connect =
>> > vtkPolyDataConnectivityFilter::New();
>> > connect->SetInputConnection(skinExtractor->GetOutputPort());
>> > connect->SetExtractionModeToLargestRegion();
>> >
>> > //Here is where I would like to build a final algorithmoutput
>> > from the accumulation
>> > //of each image after its been filtered.
>> > //Would like the following line to perform like an Addition
>> > assign operator but is
>> > //there a function or something to create this effect?
>> >
>> > (*FinalAlgorithmOutput) += (*CurrentImageFilterAlgorithmOutput);
>> >
>> > //REPEAT
>> > }
>> >
>> > Now once out of the loop, i create my actors and windows then I
>> > build my DICOM code. Once data is displayed it should show the
>> > filtered 3d head. Any advice, suggestions, ideas about this is
>> > welcomed, thanks!
>> >
>> > Lauren found her dream laptop. Find the PC that’s right for you.
>> > _______________________________________________
>> > 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
>>
>
> ________________________________
> Microsoft brings you a new way to search the web. Try Bing™ now
> ________________________________
> Bing™ brings you maps, menus, and reviews organized in one place. Try it
> now.
> _______________________________________________
> 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
>
>



More information about the vtkusers mailing list