[vtkusers] vtkImageData to 3D CArray

David Gobbi david.gobbi at gmail.com
Fri Aug 19 12:29:50 EDT 2011


Hi Jothy,

I'm not telling you to not use a C array.  What I'm telling you is
that you should use a 1D C array with strides for each dimension.
Do not use a 3D C array.  Read up on strides and learn how to use
them.  You'll thank me later.

 - David


On Fri, Aug 19, 2011 at 10:23 AM, Jothy <jothybasu at gmail.com> wrote:
> 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



More information about the vtkusers mailing list