[Paraview] How to generate a depth map from a ParaView scene
Marc Baaden
baaden at smplinux.de
Wed Dec 8 09:45:06 EST 2010
Dear David,
Thank you very much for your hint. I am not completely familiar with
python shell access to paraview (but have some experience with vtk +
python). I naively tried this:
ViewProxy = paraview.servermanager.vtkSMRenderViewProxy()
RenWin = ViewProxy.GetRenderWindow
zb = RenWin.GetZBufferData()
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'builtin_function_or_method' object has no attribute 'GetZBufferData'
But as you see, GetZBufferData does not seem to be available. I
probably did something stupid here, but if anybody could correct me,
I'd appreciate.
Furthermore, from what I saw in the documentation, if GetZBufferData was
available, it has to be used slightly differently, I think something
like this:
from libvtkCommonPython import vtkFloatArray
z = vtkFloatArray()
RenWin.GetZbufferData(0,0,300,300,z)
Now if I got this to work, how would I go about writing the data in the
vtkFloatArray z to an image file?
I think I found an alternative way which seems to work. It uses more
VTK functionalities (vtkWindowToImageFilter in particular) as follows:
from libvtkRenderingPython import vtkWindowToImageFilter
from libvtkIOPython import vtkTIFFWriter
view = GetActiveView().GetRenderWindow()
w2i = vtkWindowToImageFilter()
w2i.SetInputBufferTypeToZBuffer ()
w2i.SetInput(view)
w2i.Update()
writer = vtkTIFFWriter()
writer.SetInputConnection(w2i.GetOutputPort())
writer.SetFileName("/scratch/depthmap.tif")
view.Render()
writer.Write()
Slight inconveniences are that I actually expected inverse color scheme
(eg black for far away, white for closeup), but here it is the other
way round. Also, I cannot write this to a PNG using vtkPNGWriter instead
of the TIFF writer (error is: PNGWriter only supports unsigned char and
unsigned short inputs).
Any suggestions?
Thanks again,
Marc
dave.demarle at kitware.com said:
>> I'ld try this path:
>> from the python shell get a hold of the current render view proxy
>> http://www.paraview.org/ParaQ/Doc/Nightly/html/classvtkSMRenderViewPro
>> xy.html
>> from that get a hold of the vtkRenderWindow http://www.vtk.org/doc/
>> nightly/html/classvtkRenderWindow.html
>> on that call GetZBufferData
>> David E DeMarle
--
Dr. Marc Baaden - Institut de Biologie Physico-Chimique, Paris
mailto:baaden at smplinux.de - http://www.baaden.ibpc.fr
FAX: +33 15841 5026 - Tel: +33 15841 5176 ou +33 609 843217
More information about the ParaView
mailing list