<div dir="ltr">Quentan,<div><br></div><div>vtkImageData is in fact a subclass of vtkDataSet, so no conversion is needed. You said, "<span style="font-size:12.8000001907349px">vtkImageData scales all points to positive integer values", but this should not be the case. Something strange is going on.</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">Could you expand the code above into a complete example that can be run through vtkpython? That will make it easier to take a look. In particular, please add a part that shows the vtkImageData are being scaled to positive integers. It's fine if you fill the array with random values.</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">Thanks,</span></div><div><span style="font-size:12.8000001907349px">Cory</span></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jul 18, 2015 at 6:08 AM, Quentan Qi <span dir="ltr"><<a href="mailto:quentan@gmail.com" target="_blank">quentan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hi there,<div><br></div><div>I am going to read a set of discrete 3D points (<font face="Courier New">float</font> value, not <font face="Courier New">int</font> value) and show both the points and the fitting surface via VTK’s implicit functions, say vtkImplicitVolume or vtkImplicitDataSet.</div><div><br></div><div>It works fine of the numpy arrary to vtkImageData conversion in the following code, but is out of my mind how to convert it to vtkDataSet, which is my requirement.</div><div><br></div><div><font face="Courier New">```Python</font></div><div><div><font face="Courier New">    # Convert numpy array to VTK array (vtkFloatArray)</font></div></div><div><font face="Courier New">    vtk_data_array = numpy_support.numpy_to_vtk(</font></div><div><div><font face="Courier New">        num_array=ndarray.transpose(2, 1, 0).ravel(),  # ndarray contains the fitting result from the points. It is a 3D array</font></div><div><font face="Courier New">        deep=True,</font></div><div><font face="Courier New">        array_type=vtk.VTK_FLOAT)</font></div><div><font face="Courier New"><br></font></div><div><font face="Courier New">    # Convert the VTK array to vtkImageData</font></div><div><font face="Courier New">    img_vtk = vtk.vtkImageData()</font></div><div><font face="Courier New">    img_vtk.SetDimensions(ndarray.shape)</font></div><div><font face="Courier New">    img_vtk.SetSpacing(spacing[::-1])</font></div><div><font face="Courier New">    img_vtk.GetPointData().SetScalars(vtk_data_array)</font></div></div><div><font face="Courier New"><br></font></div><div><font face="Courier New">    # …</font></div><div><font face="Courier New"><div>    implicit_volume = vtk.vtkImplicitVolume()  # I want a vtkImplicitDataSet, whose input is a vtkDataSet</div><div>    implicit_volume.SetVolume(img_vtk)</div></font></div><div><font face="Courier New">```</font></div><div><br></div><div>Because vtkImageData scales all points to positive integer values so that the rendering result mismatches the original points, I deem vtkDataSet or its subclass can do it. Anybody knows how to convert?</div><div><br></div><div>Cheers,</div><div>Quentan</div></div><br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=vtkusers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Cory Quammen<br>R&D Engineer<br>Kitware, Inc.</div>
</div>