[vtkusers] vtkBlend Output

Alexis Cheng acheng_1221 at hotmail.com
Thu Nov 4 14:48:42 EDT 2010


Hi David,

Just to clarify, are these 2 classes available right now or is there a review process?

Thanks,
Alexis Cheng
Electrical Engineering
University of British Columbia

> From: david.gobbi at gmail.com
> Date: Thu, 4 Nov 2010 07:57:11 -0600
> Subject: Re: [vtkusers] vtkBlend Output
> To: acheng_1221 at hotmail.com
> CC: vtkusers at vtk.org
> 
> I've just committed two new classes for generating stencils:
> 1) Imaging/vtkROIStencilSource - rectangles and ellipses
> 2) Imaging/vtkLassooStencilSource - polygons and splines
> 
>   David
> 
> On Wed, Nov 3, 2010 at 8:52 AM, David Gobbi <david.gobbi at gmail.com> wrote:
> > Hi Alexis,
> >
> > The PolyDataToImageStencil filter requires a closed 3D polydata
> > surface, like a box or a sphere.  It does not work with 2D contours.
> >
> > I have a "lassoo" class based on some of my old python code for doing
> > ROI stencils, but it is incomplete.  It would work like
> > ImplicitSelectionLoop for vtkImageStencilData, but a few hundred times
> > faster.  I'll take a look at it today to see how much work it would be
> > to finish it and contribute it to VTK.
> >
> >  David
> >
> > On Tue, Nov 2, 2010 at 6:07 PM, Alexis Cheng <acheng_1221 at hotmail.com> wrote:
> >> Hi David,
> >>
> >> It certainly seems to be the Stencil filter that is slowing the system down.
> >> I am trying to use vtkPolyDataToImageStencil to see if that would be any
> >> faster, but I'm having some difficulties.
> >>
> >> I replaced this ImplicitFunction code:
> >>
> >>         vtkSmartPointer<vtkImplicitSelectionLoop> ImplicitLoop =
> >> vtkSmartPointer<vtkImplicitSelectionLoop>::New();
> >>         ImplicitLoop->SetLoop(points);
> >>
> >>         vtkSmartPointer<vtkImplicitFunctionToImageStencil> dataToStencil =
> >> vtkSmartPointer<vtkImplicitFunctionToImageStencil>::New();
> >>         dataToStencil->SetInput(ImplicitLoop);
> >>
> >> with this PolyData code:
> >>
> >>         vtkSmartPointer<vtkCellArray> polygons =
> >> vtkSmartPointer<vtkCellArray>::New();
> >>         vtkSmartPointer<vtkPolygon> polygon =
> >> vtkSmartPointer<vtkPolygon>::New();
> >>         polygon->GetPointIds()->SetNumberOfIds(4); //make a quad
> >>         polygon->GetPointIds()->SetId(0, 0);
> >>         polygon->GetPointIds()->SetId(1, 1);
> >>         polygon->GetPointIds()->SetId(2, 2);
> >>         polygon->GetPointIds()->SetId(3, 3);
> >>
> >>         polygons->InsertNextCell(polygon);
> >>
> >>         vtkSmartPointer<vtkPolyData> quad =
> >> vtkSmartPointer<vtkPolyData>::New();
> >>         quad->SetPoints(points);
> >>         quad->SetPolys(polygons);
> >>
> >>         vtkSmartPointer<vtkPolyDataToImageStencil> dataToStencil =
> >> vtkSmartPointer<vtkPolyDataToImageStencil>::New();
> >>         dataToStencil->SetInput(quad);
> >>
> >> The final image does not show the stencil with the PolyData code. Is there a
> >> difference in the implementation of the 2 filters where I would have a
> >> different output or need a different input? Also, should I expect to see any
> >> increase in performance by using PolyData instead of ImplicitFunction?
> >> Thanks for all your answers!
> >>
> >> Cheers,
> >> Alexis Cheng
> >> Electrical Engineering
> >> University of British Columbia
> >>
> >>
> >>
> >>> From: david.gobbi at gmail.com
> >>> Date: Mon, 1 Nov 2010 19:27:40 -0600
> >>> Subject: Re: [vtkusers] vtkBlend Output
> >>> To: acheng_1221 at hotmail.com
> >>> CC: vtkusers at vtk.org
> >>>
> >>> Hi Alexis,
> >>>
> >>> Have you tried it without the stencil, for comparison? The
> >>> vtkImplicitFunctionToImageStencil filter is very slow.
> >>>
> >>> David
> >>>
> >>>
> >>> On Mon, Nov 1, 2010 at 5:57 PM, Alexis Cheng <acheng_1221 at hotmail.com>
> >>> wrote:
> >>> > Hi all,
> >>> >
> >>> > Is vtkBlend extremely resource intensive? I have a following piece of
> >>> > code
> >>> > running: FinalImage is a vtkImageData object, MTImage is a vtkImageData
> >>> > object, and blend1 is a vtkImageBlend object.
> >>> >
> >>> >         blend1->SetStencil(dataToStencil->GetOutput());
> >>> >         blend1->AddInput(MTImage);
> >>> >         blend1->AddInput(BlackImage);
> >>> >         blend1->SetOpacity(0,0.5);
> >>> >         blend1->SetOpacity(1,0.5);
> >>> >
> >>> >         if(OutOfView)
> >>> >         {
> >>> >             FinalImage = MTImage;
> >>> >         }
> >>> >         else
> >>> >         {
> >>> >             FinalImage = blend1->GetOutput();
> >>> >         }
> >>> >         FinalImage->Update();
> >>> >
> >>> > The fps of my display decreases dramatically whenever the output from
> >>> > blend
> >>> > is requested. Is this behaviour expected? Thanks in advance.
> >>> >
> >>> > Cheers,
> >>> > Alexis Cheng
> >>> > Electrical Engineering
> >>> > University of British Columbia
> >>> >
> >>> > _______________________________________________
> >>> > 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
> >>> >
> >>> >
> >>
> >
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20101104/5b6663f5/attachment.htm>


More information about the vtkusers mailing list