Thank you so much. I'll start working on a python reader, if I could
create it, I will share it with the community.

Best regards,
Samer

Eric E. Monson wrote:
> Hey Samer,
>
> Part of my point was that I had trouble loading data into ParaView, so I was 
> creating it within PV to see how it handled bit data. 
>
> It looks like you are right that the legacy VTK format supports bit 
> attributes, so that may be your best bet for trying to get your data into PV. 
> There are various warnings around, though, that you _must_ write your binary 
> data in *BigEndian* format. I was able to create a data set in PV and then 
> save it in legacy VTK and load it back in okay. I'll attach both binary and 
> ascii version of this so you can compare the two to see how the binary is 
> constructed. It looks like you just need a newline after the header part, and 
> then your binary data written out as 8 bit characters, and then a newline at 
> the end.
>
> I don't think that the VTK file formats can refer to data in another file, so 
> if I understand you correctly it won't work as a markup language like .xmf 
> files with HDF5. So, if you really need to stick with bit images you'll 
> probably have to write the legacy VTK as a separate, single file.
>
> Good luck,
> -Eric
>
>   
> ------------------------------------------------------------------------
>
>
>
> On Jul 1, 2010, at 6:27 PM, sa...@icp.uni-stuttgart.de wrote:
>
>   
>> Hello Eric,
>>
>> Thanks again that you're the one answering my questions. Well
>> unfortunately I haven't ever worked on python before, so it would be a
>> good idea to avoid it in the beginning till I find it the only solution to
>> my problem. Could you please tell me how you managed to open the bit
>> images with Paraview and/or VTK? even if it gives some errors, it's OK,
>> because I'm not asking for so much in the output, I just want to see some
>> simple 3D visualisation for my images.
>>
>> Actually I'm surprised, that in VTK I read in the manual that it's
>> supposed to accept the bit format, but it did not open on paraview when I
>> tried converting my binary images to VTK format by adding the appropriate
>> header. So did I miss something in that conversion? The header I added is
>> the following:
>>
>> # vtk DataFile Version 3.0
>> blablabla
>> BINARY
>> DATASET STRUCTURED_POINTS
>> DIMENSIONS 1024 1024 512
>> ORIGIN 0 0 0
>> SPACING 1 1 1
>> POINT_DATA 536870912
>> SCALARS OutArray bit 1
>> LOOKUP_TABLE default
>>
>>
>> Actually this discussion tempts me to ask the question, can I use VTK as a
>> markup language to open my data files? or should I install this header
>> into my data file so that both the data and the header are in one file?
>>
>> Thank you for your time.
>>
>> Best regards,
>> Samer
>>
>>
>>
>>     
>>> Hello Samer,
>>>
>>> Well, hopefully someone more knowledgeable will speak up if I'm wrong, but
>>> after playing around for a while I don't think you're going to be happy
>>> with ParaView's support (and probably VTK underneath) for image data with
>>> bit attributes. (For example, I couldn't get volume rendering to work, and
>>> I got some errors like: vtkOpenGLScalarsToColorsPainter (0x12a099f70):
>>> Cannot color by bit array, even though it _would_ actually color it.)
>>>
>>> I don't know of a reader offhand that will support single bit data
>>> attributes (I tried the old VTK and newer XML-based VTK formats and it
>>> didn't work well, and I'm not sure what other readers would work -- the
>>> .raw reader in ParaView also seems to have a limit of char at the small
>>> end). I have a feeling you could create a custom reader with the Python
>>> Programmable Source. You can look at some examples here:
>>>
>>> http://www.paraview.org/Wiki/Python_Programmable_Filter
>>> http://www.paraview.org/Wiki/Here_are_some_more_examples_of_simple_ParaView_3_python_filters.
>>>
>>> You can create a sample of this type of data directly in ParaView to see
>>> what is supported and not with single bit attributes:
>>>
>>> 1. Create a Wavelet Source
>>> 2. Apply a Python Programmable Filter
>>> Use this as the Script:
>>>
>>> # ---------------
>>> from paraview.vtk import vtkBitArray
>>> import random
>>>
>>> pdi = self.GetInputDataObject(0,0)
>>> pdo = self.GetOutputDataObject(0)
>>> pdo.ShallowCopy(pdi)
>>>
>>> ba = vtkBitArray()
>>> ba.SetNumberOfComponents(1)
>>> ba.SetNumberOfTuples(pdi.GetNumberOfPoints())
>>> ba.SetName('bits')
>>> for ii in range(ba.GetNumberOfTuples()):
>>>     ba.SetTuple1(ii,round(random.random()))
>>>
>>> pdo.GetPointData().AddArray(ba)
>>> pdo.GetPointData().SetActiveScalars('bits')
>>> # ---------------
>>>
>>> You can see in the Information tab that a bit array is created, and you
>>> can try coloring by that array, but only Slice representation seems to
>>> work well. Contour filter seems to deal with it okay, though, so maybe
>>> this will still be useful to you.
>>>
>>> Talk to you later,
>>> -Eric
>>>
>>> ------------------------------------------------------
>>> Eric E Monson
>>> Duke Visualization Technology Group
>>>
>>>
>>> On Jun 30, 2010, at 6:16 PM, sa...@icp.uni-stuttgart.de wrote:
>>>
>>>       
>>>> Hello guys,
>>>>
>>>> I have a binary image that consists of bits, every bit indicates to a
>>>> pixel (or voxel) in my 3D image. The file is nothing special, it's
>>>> simply
>>>> a contiguous file format I write as an output in a C++ program, I mean
>>>> it's not HDF or something common.
>>>> Is it possible to view this image in Paraview without being converted to
>>>> byte for every pixel? I mean is there a way that I could write an XML or
>>>> XDMF script that tells paraview how to view it?
>>>> I succeeded in viewing the image, but after converting every bit to a
>>>> byte, which means that the image is now 8 times bigger in size! this is
>>>> not effective at all I guess.
>>>>
>>>> I would appreciate an example very much.
>>>>
>>>> Thank you
>>>>
>>>> Regards,
>>>> Samer
>>>>
>>>> _______________________________________________
>>>> 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 ParaView Wiki at:
>>>> http://paraview.org/Wiki/ParaView
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.paraview.org/mailman/listinfo/paraview
>>>>         
>
>   

_______________________________________________
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 ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to