[vtkusers] ImageToPolyDataFilter
Sebastien Jourdain
sebastien.jourdain at kitware.com
Mon May 6 09:55:57 EDT 2013
Which version of VTK and do you have the hybrid library inside your set of
vtk libraries ?
Moreover, instead of calling
try {
Class.forName("vtk.vtkPanel");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
You should rely on that instead:
vtkNativeLibrary.LoadAllNativeLibraries();
Seb
On Mon, May 6, 2013 at 8:59 AM, Thibault Varacca <thibault.varacca at gmail.com
> wrote:
> Hello everybody,
>
> I have .raw (binary) files which are segmented data. I load it with a .mhd
> file and want to convert it to polydata to finally apply the marching cubes
> filter.
> but i have the following error :
>
> # JRE version: 7.0_21-b11
> # Java VM: Java HotSpot(TM) 64-Bit Server VM (23.21-b01 mixed mode
> windows-amd64 compressed oops)
> # Problematic frame:
> # C [vtkHybrid.dll+0x5db28] vtkImageToPolyDataFilter::ProcessImage+0x18
> #
> # Failed to write core dump. Minidumps are not enabled by default on
> client versions of Windows
> #
> # If you would like to submit a bug report, please visit:
> # http://bugreport.sun.com/bugreport/crash.jsp
> # The crash happened outside the Java Virtual Machine in native code.
> # See problematic frame for where to report the bug.
>
> Here is my code:
>
> import java.lang.reflect.InvocationTargetException;
>
> import javax.swing.SwingUtilities;
>
> import vtk.vtkActor;
> import vtk.vtkImageData;
> import vtk.vtkImageToPolyDataFilter;
> import vtk.vtkMarchingCubes;
> import vtk.vtkMetaImageReader;
> import vtk.vtkPolyDataMapper;
> import vtk.vtkRenderWindow;
> import vtk.vtkRenderWindowInteractor;
> import vtk.vtkRenderer;
> import vtk.vtkSTLWriter;
> import vtk.vtkVoxelModeller;
>
> public class MeshVtk implements Runnable {
>
> @Override
> public void run() {
>
> String filename = "ressources\\output_piston.xy.mhd";
> vtkVoxelModeller voxelModeller = new vtkVoxelModeller();
> vtkMarchingCubes marchingcubes = new vtkMarchingCubes();
> vtkRenderer renderer = new vtkRenderer();
> vtkRenderWindow renderWindow = new vtkRenderWindow();
> vtkRenderWindowInteractor interactor = new
> vtkRenderWindowInteractor();
> vtkPolyDataMapper mapper = new vtkPolyDataMapper();
> vtkActor actor = new vtkActor();
> double bounds[] = new double[] {};
>
> /* reader */
> vtkMetaImageReader reader = new vtkMetaImageReader();
> reader.SetFileName(filename);
> reader.Update();
>
> vtkImageData img = new vtkImageData();
> img = reader.GetOutput();
>
> vtkImageToPolyDataFilter img2poly = new vtkImageToPolyDataFilter();
> img2poly.SetInput(img);
> img2poly.DecimationOn();
> img2poly.SetError(0);
> img2poly.DecimationOn();
> img2poly.SetDecimationError(0.0);
> img2poly.Update();
>
> bounds = reader.GetOutput().GetBounds(); /* bounds */
>
> for (int i = 0; i < 6; i += 2) {
> double range = bounds[i + 1] - bounds[i];
> bounds[i] = bounds[i] - .1 * range;
> bounds[i + 1] = bounds[i + 1] + .1 * range;
> }
>
> voxelModeller.SetSampleDimensions(75, 75, 75);
> voxelModeller.SetModelBounds(bounds);
> voxelModeller.SetScalarTypeToFloat();
> voxelModeller.SetMaximumDistance(.1);
>
> voxelModeller.SetInput(reader.GetOutput());
>
> /* marching cubes */
> marchingcubes.SetInput(voxelModeller.GetOutput());
> marchingcubes.ComputeNormalsOn();
> marchingcubes.SetValue(0, 1);
>
> renderer.SetBackground(.1, .2, .3);
>
> renderWindow.AddRenderer(renderer);
>
> interactor.SetRenderWindow(renderWindow);
>
> mapper.SetInput(marchingcubes.GetOutput());
>
> actor.SetMapper(mapper);
>
> renderer.AddActor(actor);
> renderWindow.Render();
> interactor.Start();
>
> vtkSTLWriter writer = new vtkSTLWriter();
> writer.SetFileTypeToBinary();
> writer.AddInputConnection(marchingcubes.GetOutputPort());
> writer.SetFileName("ressources\\output_piston.xy.stl");
> writer.Write();
>
> }
>
> public static void main(String[] args) {
> try {
> Class.forName("vtk.vtkPanel");
> } catch (ClassNotFoundException e) {
> e.printStackTrace();
> }
>
> try {
> SwingUtilities.invokeAndWait(new MeshVtk());
> } catch (InvocationTargetException | InterruptedException e) {
> e.printStackTrace();
> }
> }
>
> }
>
> I hope somebody could help me to fix this.
>
> Regards,
>
> --
> Thibault Varacca
> EFREI Promo 2014
> 06 60 53 11 35
>
> _______________________________________________
> 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 VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20130506/6cf910ef/attachment.htm>
More information about the vtkusers
mailing list