[vtkusers] PCA on vtkImageData

Andrew Crozier andrew.crozier at medunigraz.at
Tue Nov 18 17:42:55 EST 2014


Hi David,

Thanks, you were right. I was able to visualise the full point cloud in 
a VTK window using the vtkVertexGlyphFilter on the output of 
vtkThreshold. I was then able to adapt the PCA demo on the wiki 
(http://www.vtk.org/Wiki/VTK/Examples/Cxx/Utilities/PCADemo) to my purposes.

Thanks again for the help and best wishes,
Andrew

On 17/11/14 19:21, David Gobbi wrote:
> Hi Andrew,
>
> My best guess is that the internal points are there, but ParaView is 
> only showing the surface.  From python you can call 
> GetNumberOfPoints() on the data set to check if the number of points 
> matches what you expect.
>
>  - David
>
> On Mon, Nov 17, 2014 at 10:25 AM, Andrew Crozier 
> <andrew.crozier at medunigraz.at <mailto:andrew.crozier at medunigraz.at>> 
> wrote:
>
>     I wrote it out with vtkUnstructuredGridWriter and loaded it up in
>     Paraview. Showing it there with a 'Points' or '3D Glyphs'
>     representation shows only vertices on the external surface of the
>     specified region.
>
>     (Python) code I used to generate:
>
>     tf = vtk.vtkThreshold()
>     tf.SetInput(img)
>     tf.ThresholdBetween(1.5,2.5)
>     tf.Update()
>     op = tf.GetOutput()
>
>     writer = vtk.vtkUnstructuredGridWriter()
>     writer.SetFileName('thresh.vtk')
>     writer.SetInput(op)
>     writer.Write()
>
>     Andrew
>
>
>     On 17/11/14 17:40, David Gobbi wrote:
>>     Hi Andrew,
>>
>>     It should export all the points in the volume, as long as they
>>     are within the applied thresholds.  What is your evidence that
>>     it's only exporting the boundary?
>>
>>      - David
>>
>>     On Mon, Nov 17, 2014 at 9:34 AM, Andrew Crozier
>>     <andrew.crozier at medunigraz.at
>>     <mailto:andrew.crozier at medunigraz.at>> wrote:
>>
>>         Hi David,
>>
>>         Thanks for the suggestion. I looked at the vtkThreshold
>>         filer, however it appears to export the boundary of the
>>         thresholded volume, whereas I require all points inside the
>>         volume. Have you any idea of how to achieve that?
>>
>>         BW,
>>         Andrew
>>
>>
>>         On 17/11/14 17:16, David Gobbi wrote:
>>>         Hi Andrew,
>>>
>>>         The vtkThreshold filter will extract only the cells with the
>>>         desired
>>>         scalar values, and will output them as an unstructured grid.  It
>>>         isn't exactly what you want because it extracts cells,
>>>         rather than
>>>         points, but it might be worth a shot.
>>>
>>>          - David
>>>
>>>         On Mon, Nov 17, 2014 at 8:28 AM, Andrew Crozier
>>>         <andrew.crozier at medunigraz.at
>>>         <mailto:andrew.crozier at medunigraz.at>> wrote:
>>>
>>>             Hi,
>>>
>>>             I am trying to evaluate the principal components of a
>>>             strucutre in a 3D volume image, to determine its spatial
>>>             alignment for use in an automatic processing pipeline.
>>>
>>>             The input is a vtkImageData, with multiple integer
>>>             values (say, 0, 1, 2 and 3), and I want to perform PCA
>>>             on the positions of all voxels with value 2, for example.
>>>
>>>             I have looked at vtkPCAAnalysisFilter, and this requires
>>>             an input of vtkPointSet. vtkImageDataToPointSet converts
>>>             a vtkImageData to a vtkStructuredGrid, however I expect
>>>             this to include all points in the original image. At the
>>>             moment I seem to be missing some way of filtering out
>>>             the points other than those of value 2.
>>>
>>>             Any help provided for this would be greatly appreciated!
>>>
>>>             Best wishes,
>>>             Andrew Crozier
>>>
>>
>>         -- 
>>         ------------------------------------------------------------------------
>>         *Andrew Crozier*
>>         andrew.crozier at medunigraz.at
>>         <mailto:andrew.crozier at medunigraz.at>
>>
>>         Postdoctoral Researcher
>>         Institute for Biophysics
>>         Medical University of Graz
>>
>>
>
>     -- 
>     ------------------------------------------------------------------------
>     *Andrew Crozier*
>     andrew.crozier at medunigraz.at <mailto:andrew.crozier at medunigraz.at>
>
>     Postdoctoral Researcher
>     Institute for Biophysics
>     Medical University of Graz
>
>

-- 
------------------------------------------------------------------------
*Andrew Crozier*
andrew.crozier at medunigraz.at

Postdoctoral Researcher
Institute for Biophysics
Medical University of Graz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20141118/6e8c330e/attachment.html>


More information about the vtkusers mailing list