[vtkusers] vtkBlend Output

David Gobbi david.gobbi at gmail.com
Thu Nov 4 09:57:11 EDT 2010


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
>>> >
>>> >
>>
>



More information about the vtkusers mailing list