[vtkusers] Combining three velocity components

Adam Wiktor awiktor at emory.edu
Fri Jul 31 15:24:37 EDT 2009


Yes, I tried both that and AppendFilter, but I'm still having problems. I
may not be using the append correctly, but the calculator is only
recognizing one of the three components, and I get this error message (it's
the same for both ImageAppendComponents and AppendFilter):

ERROR: In /home/awiktor/Desktop/VTK/Graphics/vtkArrayCalculator.cxx, line
338
vtkArrayCalculator (0x763d70): Invalid array name: y

I get the same message except with "Invalid array name: z" if I remove all
references to y, so I think this means that the calculator isn't seeing the
'y' and 'z' variables.

Here's the part of the code that isn't working:

append=vtk.vtkImageAppendComponents()
append.AddInput(xcalc.GetOutput())
append.AddInput(ycalc.GetOutput())
append.AddInput(zcalc.GetOutput())
append.Update()

velcalc = vtk.vtkArrayCalculator()
velcalc.SetInput(append.GetOutput())
velcalc.AddVectorArrayName("x", 0, 1, 2)
velcalc.AddVectorArrayName("y", 0, 1, 2)
velcalc.AddVectorArrayName("z", 0, 1, 2)
velcalc.SetResultArrayName("Velocity")
velcalc.SetFunction("x+y+z")
velcalc.Update()

Any idea what the problem is?

Thanks,

Adam

On Fri, Jul 31, 2009 at 12:54 PM, Wes Turner <wes.turner at kitware.com> wrote:

> Did you try ImageAppendComponents?
> http://www.vtk.org/doc/nightly/html/classvtkImageAppendComponents.html
>
>  <http://www.vtk.org/doc/nightly/html/classvtkImageAppendComponents.html>-
> Wes
>
> On Fri, Jul 31, 2009 at 12:16 PM, Adam Wiktor <awiktor at emory.edu> wrote:
>
>> Hi All,
>>
>> I am fairly new to VTK, so please bear with me. I'm trying to visualize
>> blood flow in the aorta from MRI scans. The velocity data is stored in three
>> separate vti images, for the x-, y- and z- components. Each image has a
>> scalar variable 'DICOMImage' which is the speed in that direction. I need to
>> combine the components into the overall velocity, which I will then import
>> into paraview to add streamlines and other things.
>>
>> My original thought was to use the vtkArrayCalculator to multiply each
>> image by the unit vector (for the x component, for example, it would be
>> DICOMImage*iHat). I would then need to combine these vectors into the
>> velocity with another calculator, just doing x+y+z. I might be able to
>> simplify this by just using one calculator that did x*iHat + y*jHat +
>> z*kHat, but I don't know how to change the variable names from DICOMImage to
>> x, y, and z so that the calculator can distinguish between them.
>>
>> First of all, I'd like to know if there's an easier way of doing this.
>>
>> If there isn't a more straight-forward way, then the main thing I need to
>> figure out is how to get the final calculator to use the three different
>> inputs. What would be the best way to do that?
>>
>> Thanks for any help you can give!
>>
>> - Adam
>> _______________________________________________
>> 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
>>
>>
>
>
> --
> Wesley D. Turner, Ph.D.
> Kitware, Inc.
> R&D Engineer
> 28 Corporate Drive
> Clifton Park, NY 12065-8662
> Phone: 518-371-3971 x120
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20090731/1f6a63c2/attachment.htm>


More information about the vtkusers mailing list