[vtkusers] Addition Assign AlgorithmOutput? Merge?

Chris N alucard006 at msn.com
Thu Jun 25 05:03:12 EDT 2009


Hello vtkusers,



Lately, I've been stuck but want to see what I'm trying to do is
possible or at least in the correct direction.  Before I was trying to
build my volume from my DICOM data which I succeeded easily by using
vtk.  Now lately I wanted to filter my data from noise which I found to
be a little tricky.  In the long run I decided I would filter my files
first and store them in vtkAppendPolyData and build my volume from
that.  It sounded straight forward in the beginning but now I'm not
sure if this is possible.  Is my approach possible or is there another method to filter first and build volume later?  Currently I only end up with my last file actually appearing while my other data is not there or lost.

Thanks in advance,
Chris

From: alucard006 at msn.com
To: mike.jackson at bluequartz.net
CC: vtkusers at vtk.org
Subject: RE: [vtkusers] Addition Assign AlgorithmOutput? Merge?
Date: Fri, 19 Jun 2009 02:01:59 -0700








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.
_________________________________________________________________
Lauren found her dream laptop. Find the PC that’s right for you.
http://www.microsoft.com/windows/choosepc/?ocid=ftp_val_wl_290
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20090625/ff7389b8/attachment.htm>


More information about the vtkusers mailing list