[vtkusers] Addition Assign AlgorithmOutput? Merge?

Chris N alucard006 at msn.com
Tue Jun 16 10:15:55 EDT 2009




















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
http://www.bing.com?form=MFEHPG&publ=WLHMTAG&crea=TEXT_MFEHPG_Core_tagline_try bing_1x1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20090616/c75c6eed/attachment.htm>


More information about the vtkusers mailing list