[vtkusers] vtkImageData to 3D CArray

Jothy jothybasu at gmail.com
Fri Aug 19 12:23:01 EDT 2011


Thanks for your reply.

I don't need to do any image processing with that C array. I need to get the
scalar values at [x,y,z] for a huge list of points from the vtkImageData
(they are randomly located). First I tried with
GetScalarComponentAsDouble(x,y,z,0).

But it's too slow (for my purpose, 20-30 secs). After some Google search, I
came to know that acessing array with [] will be much faster that
GetscalarComponent.

I even looked at vtkImageIterator, it only has methods span, begin,end. Most
importantly I need to copy those scalar values for later uses, so mere
scalar pointers won't help. That's why I am trying to do it with a c array.

Jothy

On Fri, Aug 19, 2011 at 5:15 PM, David Gobbi <david.gobbi at gmail.com> wrote:

> Hi Jothy,
>
> You probably don't want to create a 3D C array.  In C, all dimensions
> of a C array except for the first dimension must be constant.  So if
> you have variables N and M and you try doing this:
>
> short myarray[N][M];
>
> then you will get a compile error.  Multidimensional C arrays are
> pretty much useless for image processing, people generally use a
> 1D array and strides/increments.  Do a search for "array strides" on
> google.
>
>  - David
>
> On Fri, Aug 19, 2011 at 9:54 AM, Jothy <jothybasu at gmail.com> wrote:
> > Hi all,
> >
> > I am trying to create a 3D C array form vtkImageData. I tried
> > vtkImageExport, but I seems like only exporting it as a 1D array. Is
> there
> > any other filter or how to convert it to a 3D array? I am new to c++ and
> I
> > don't find any matrix manipulation function as in MATLAb or Python in c
> std
> > lib.
> >
> > Thank you
> >
> > Jothy
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20110819/e5bec8ee/attachment.htm>


More information about the vtkusers mailing list