[Insight-developers] itkVTKPolyDataReader.h reads ascii only --- why?

Alexandre GOUAILLARD agouaillard at gmail.com
Sat Oct 23 00:53:02 EDT 2010


ok,

I think it's a great addition. Moreover, this would work with Images
too, right? (I hate the name "pixeltype" in the meshes, but I have to
admit it makes the comparison between the two template implementations
easier.)

My understanding is that people in the microscopy / remote sensing
field are currently trying to do just that (cory?). Luis would you
mind to take a look at those two files and advise where would be the
best location in ITK for them? Their 1D equivalent is in Code/IO.
Also, Can you confirm my understanding that it does runtime adaptation
of variableVector type, which is what other are trying to tackle (
fixed size 2 to variable size 2)?

alex.

On Fri, Oct 22, 2010 at 10:11 PM, wanlin <wanlinzhu at gmail.com> wrote:
> Yes, they are here because itkConvertPixelBuffer could not handle
> outputPixelType with Array or VariableLengthVector type.
> Therefore i add the two specialized template classes to process when mesh
> pixel type with Array or VariableLengthVector type.
>
> On Fri, Oct 22, 2010 at 9:44 PM, Alexandre GOUAILLARD
> <agouaillard at gmail.com> wrote:
>>
>> hi wanlin,
>>
>> your two classes:
>> -rw-r--r--@ 1 gouaillarda  staff   2128 Oct 22 18:36
>> itkConvertArrayPixelBuffer.h
>> -rw-r--r--@ 1 gouaillarda  staff   1536 Oct 22 18:36
>> itkConvertArrayPixelBuffer.txx
>> -rw-r--r--@ 1 gouaillarda  staff   2253 Sep  8 18:37
>> itkConvertVariableLengthVectorPixelBuffer.h
>> -rw-r--r--@ 1 gouaillarda  staff   1626 Sep  8 18:37
>> itkConvertVariableLengthVectorPixelBuffer.txx
>> are extension of the itkConvertPixelBuffer in Code/IO, exact ?
>>
>> alex.
>>
>> On Mon, Oct 18, 2010 at 7:57 PM, wanlin <wanlinzhu at gmail.com> wrote:
>> >
>> >
>> > On Mon, Oct 18, 2010 at 8:29 PM, Alexandre GOUAILLARD
>> > <agouaillard at gmail.com> wrote:
>> >>
>> >> hi wanlin.
>> >>
>> >> I just reviewed your code.
>> >> Everything seems fine from this quick first review and I updated your
>> >> IJ paper with it.
>> >>
>> > Thank you very much.
>> >
>> >> It's a wonderful contribution, and I will put it as a candidate for
>> >> integration in itk v4.
>> >>
>> > It's cool. Thanks again.
>> >
>> >>
>> >> Before I do that though, can you tell me more about PolylineCell ? The
>> >> code seems to be heavily inspired by the triangle cell, any specific
>> >> design point (or question) you would have before i go deeper into it?
>> >
>> >
>> > While PolylineCell is almost the same as PolygonCell ( i copied and
>> > changed
>> > from it) except that the topology of this cell is not closed (i know it
>> > is
>> > ugly but a streamline like polyline cell type is useful, at least for
>> > me).
>> > The purpose of this class is to read streamline type data (currently
>> > only
>> > vtk polydata support it), such as fiber bundles obtained from DTI
>> > tractography algorithm. I know the streamline could be represented by
>> > DTITubeSpatialObject, but it is not derived from CellInterface, which
>> > prevent me from using it. Do you have a better idea so we could not add
>> > PolylineCell?
>> >
>> >>
>> >> Also, I will template your tests and examples over the meshtype to
>> >> reduce the number of lines by 2, unless you have strong objection
>> >> against it.
>> >>
>> > I totally agree with it.
>> >
>> >>
>> >> Finally, I don't understand the part on the third page about the data
>> >> type (pixeltype), could you point me to the example you are mentioning
>> >> in the paper?
>> >>
>> > Do you refer to this sentence "One of tests shows how it works"? in page
>> > 2?
>> > Sorry for the confusion. One of the data type defined in vtk polydata is
>> > COLOR_SCALARS dataName nValues
>> > c00 c01 ... c0(nValues-1)
>> > c10 c11 ... c1(nValues-1)
>> > So the number of elements in the pixelType is determined when reading a
>> > file. So we use itk::Array or itk::VariableLengthVector as the pixel
>> > type.
>> > In the test PolylineReadWriteTest, we defined
>> > itk::VariableLengthVector<float> as pixel type since the test data
>> > fibers.vtk contains COLOR_SCALARS.
>> >
>> > Finally, i have a question in terms of GIFTI data format, which requires
>> > gifticlib (http://www.nitrc.org/frs/?group_id=75). I am not sure the
>> > third
>> > party software policy of itk, therefore i didn't include the support
>> > into
>> > this version of submission. Do you think we could put gifticlib into
>> > Utilities for supporting GIFTI IO? Or we could do it latter when this
>> > functionality was required.
>> >
>> >
>> > Many thanks for your help
>> >
>> >
>> > wanlin
>> >
>> >> thanks again for this contribution.
>> >>
>> >> regards,
>> >>
>> >> alex.
>> >>
>> >>
>> >> On Thu, Oct 14, 2010 at 12:19 PM, Alexandre GOUAILLARD
>> >> <agouaillard at gmail.com> wrote:
>> >> > hi wanlin, all,
>> >> >
>> >> > mesh IO is in my pile of to-be-reviewed. I m goign to put it on the
>> >> > top of my pile, and address it early next week. If everything goes
>> >> > alright, I would push the code in ITK v4 before the end of next week.
>> >> >
>> >> > thanks for the contribution.
>> >> >
>> >> > alex.
>> >> >
>> >> >
>> >> > On Thu, Oct 14, 2010 at 7:26 AM, wanlin <wanlinzhu at gmail.com> wrote:
>> >> >> Hi, Brain,
>> >> >>             Reading binary legacy vtk polydata has been implemented
>> >> >> in
>> >> >> http://www.insight-journal.org/browse/publication/761
>> >> >> Would you like try it?
>> >> >>
>> >> >>
>> >> >>
>> >> >> On Wed, Oct 13, 2010 at 11:15 AM, Luis Ibanez
>> >> >> <luis.ibanez at kitware.com>
>> >> >> wrote:
>> >> >>>
>> >> >>> Hi Brain,
>> >> >>>
>> >> >>> Since this is an existing class, Jeff could simply
>> >> >>>
>> >> >>> 1) create a Git branch in his local repository,
>> >> >>> 2) make the necessary changes to the class,
>> >> >>> 3) add the proper test for reading binary vtk files,
>> >> >>> 4) run Experimental build until green,
>> >> >>> 5) and then push the branch to Gerrit for review.
>> >> >>>
>> >> >>>
>> >> >>> Please let us now if you or Jeff run into any
>> >> >>> problems.
>> >> >>>
>> >> >>> I'm sure many people will appreciate having
>> >> >>> the binary read functionality in this reader.
>> >> >>>
>> >> >>>
>> >> >>>      Luis
>> >> >>>
>> >> >>>
>> >> >>> --------------------------------------------
>> >> >>> On Wed, Oct 13, 2010 at 5:00 PM, brian avants <stnava at gmail.com>
>> >> >>> wrote:
>> >> >>>>
>> >> >>>> Luis
>> >> >>>>
>> >> >>>> I think we can add the binary I/O capabilities to these classes,
>> >> >>>> if
>> >> >>>> it's not done elsewhere, already.   Jeff Duda will probably do
>> >> >>>> this
>> >> >>>> --- what's the recommended approach, currently, for adding
>> >> >>>> functionality like this to the toolkit?
>> >> >>>>
>> >> >>>> agreed that xml support is a bit ambitious.
>> >> >>>>
>> >> >>>> Brian
>> >> >>>>
>> >> >>>> On Wed, Oct 13, 2010 at 4:49 PM, Luis Ibanez
>> >> >>>> <luis.ibanez at kitware.com>
>> >> >>>> wrote:
>> >> >>>> >
>> >> >>>> > Hi Brian,
>> >> >>>> >
>> >> >>>> > This reader was implemented as a helper class for
>> >> >>>> > other initiatives.
>> >> >>>> >
>> >> >>>> > Managing only ASCII was the first easy way to get
>> >> >>>> > it done.
>> >> >>>> >
>> >> >>>> > Binary just need to be added to its capabilities.
>> >> >>>> >
>> >> >>>> >
>> >> >>>> > Would you be interested in modifying the class
>> >> >>>> > and adding the Binary reading capability ?
>> >> >>>> >
>> >> >>>> >
>> >> >>>> > -
>> >> >>>> >
>> >> >>>> > The support for XML is a more difficult proposition.
>> >> >>>> > The implementation in VTK relies on a hierarchy
>> >> >>>> > of helper classes.  It can certainly be done in ITK
>> >> >>>> > but it will require several weeks of effort.
>> >> >>>> >
>> >> >>>> >
>> >> >>>> > I would suggest to deal only with the Binary
>> >> >>>> > reading capability initially.
>> >> >>>> >
>> >> >>>> >
>> >> >>>> >      Luis
>> >> >>>> >
>> >> >>>> >
>> >> >>>> > ----------------------------------------------------------------
>> >> >>>> > On Wed, Oct 13, 2010 at 2:38 PM, brian avants <stnava at gmail.com>
>> >> >>>> > wrote:
>> >> >>>> >>
>> >> >>>> >> Hi Everyone
>> >> >>>> >>
>> >> >>>> >> I updated git-itk this morning.  Am trying to read a vtk mesh
>> >> >>>> >> and
>> >> >>>> >> apply a transformation to it.  I get the error below that says,
>> >> >>>> >> basically, "File format is BINARY but only ASCII files can be
>> >> >>>> >> read".
>> >> >>>> >> Is there a good reason for this limitation?    Is it not true
>> >> >>>> >> that
>> >> >>>> >> vtk
>> >> >>>> >> files can be of type ASCII, binary or xml?   Should all of
>> >> >>>> >> those
>> >> >>>> >> be
>> >> >>>> >> supported?   Should the filter(s) be named
>> >> >>>> >> itkVTKAsciiPolyDataReader/Writer?    Finally, is anyone working
>> >> >>>> >> on
>> >> >>>> >> this or is the solution in the software pipeline?
>> >> >>>> >>
>> >> >>>> >> Thanks!
>> >> >>>> >>
>> >> >>>> >> Brian
>> >> >>>> >>
>> >> >>>> >>
>> >> >>>> >> Input object: Mesh.vtk
>> >> >>>> >> Error during Update()
>> >> >>>> >>
>> >> >>>> >> itk::ExceptionObject (0x101abc640)
>> >> >>>> >> Location: "void
>> >> >>>> >> itk::VTKPolyDataReader<TOutputMesh>::GenerateData()
>> >> >>>> >> [with TOutputMesh = itk::Mesh<double, 3u,
>> >> >>>> >> itk::DefaultStaticMeshTraits<double, 3u, 3u, float, float,
>> >> >>>> >> double>
>> >> >>>> >> >]"
>> >> >>>> >> File:
>> >> >>>> >> /Users/brianavants/code/ITK/Code/IO/itkVTKPolyDataReader.txx
>> >> >>>> >> Line: 107
>> >> >>>> >> Description: itk::ERROR: VTKPolyDataReader(0x101abc4b0): Error
>> >> >>>> >> reading
>> >> >>>> >> file: WM.vtk
>> >> >>>> >> File format is BINARY but only ASCII files can be read.
>> >> >>>> >> _______________________________________________
>> >> >>>> >> Powered by www.kitware.com
>> >> >>>> >>
>> >> >>>> >> Visit other Kitware open-source projects at
>> >> >>>> >> http://www.kitware.com/opensource/opensource.html
>> >> >>>> >>
>> >> >>>> >> Kitware offers ITK Training Courses, for more information
>> >> >>>> >> visit:
>> >> >>>> >> http://kitware.com/products/protraining.html
>> >> >>>> >>
>> >> >>>> >> Please keep messages on-topic and check the ITK FAQ at:
>> >> >>>> >> http://www.itk.org/Wiki/ITK_FAQ
>> >> >>>> >>
>> >> >>>> >> Follow this link to subscribe/unsubscribe:
>> >> >>>> >> http://www.itk.org/mailman/listinfo/insight-developers
>> >> >>>> >
>> >> >>>> >
>> >> >>>>
>> >> >>>>
>> >> >>>>
>> >> >>>> --
>> >> >>>> ß®∫∆π
>> >> >>>
>> >> >>>
>> >> >>> _______________________________________________
>> >> >>> Powered by www.kitware.com
>> >> >>>
>> >> >>> Visit other Kitware open-source projects at
>> >> >>> http://www.kitware.com/opensource/opensource.html
>> >> >>>
>> >> >>> Kitware offers ITK Training Courses, for more information visit:
>> >> >>> http://kitware.com/products/protraining.html
>> >> >>>
>> >> >>> Please keep messages on-topic and check the ITK FAQ at:
>> >> >>> http://www.itk.org/Wiki/ITK_FAQ
>> >> >>>
>> >> >>> Follow this link to subscribe/unsubscribe:
>> >> >>> http://www.itk.org/mailman/listinfo/insight-developers
>> >> >>>
>> >> >>
>> >> >>
>> >> >> _______________________________________________
>> >> >> Powered by www.kitware.com
>> >> >>
>> >> >> Visit other Kitware open-source projects at
>> >> >> http://www.kitware.com/opensource/opensource.html
>> >> >>
>> >> >> Kitware offers ITK Training Courses, for more information visit:
>> >> >> http://kitware.com/products/protraining.html
>> >> >>
>> >> >> Please keep messages on-topic and check the ITK FAQ at:
>> >> >> http://www.itk.org/Wiki/ITK_FAQ
>> >> >>
>> >> >> Follow this link to subscribe/unsubscribe:
>> >> >> http://www.itk.org/mailman/listinfo/insight-developers
>> >> >>
>> >> >>
>> >> >
>> >
>> >
>
>


More information about the Insight-developers mailing list