[vtkusers] help with marchingcubes with dicom slices set

Rodrigo Lovera lobo.theslayer at gmail.com
Fri Nov 23 21:53:15 EST 2012


Well most part of your code work really fine for me, thx a lot ill now do
some adjustments in the options to fit the gui im supossed to do. Thank you
again for your help.


Rodrigo


2012/11/23 Rodrigo Lovera <lobo.theslayer at gmail.com>

> I'm developing this project in c++, where I dont have that vtkcanvas
> class, what can I do to use something similar??
>
>
>
> 2012/11/19 kingvsk at aol.com <kingvsk at aol.com>
>
>  Please comment the following lines from that code.
>>
>>         //vpanSurface.GetRenderWindow().StereoCapableWindowOn();
>>         ////vpanSurface.GetRenderWindow().SetStereoTypeToAnaglyph();
>>         //vpanSurface.GetRenderWindow().SetStereoTypeToCrystalEyes();
>>         //vpanSurface.GetRenderWindow().SetStereoRender(1);
>>
>> These lines are used to enable stereo 3D view.  Sorry for the trouble.
>>
>> --
>> Sathish
>>
>>
>> On Monday 19 November 2012 10:33 AM, kingvsk at aol.com wrote:
>>
>> Hi
>>
>> Try this code... It works fine for me...
>>
>> <code>
>> private void DisplaySurface(int val, double opacityValue, double
>> redValue, double greenValue, double blueValue) {
>>         reader = new vtkDICOMImageReader();
>>         if (new File(directoryName).isDirectory()) {
>>             reader.SetDirectoryName(directoryName);
>>             reader.Update();
>>         } else {
>>             LOG.log(Level.WARNING, "Please select a directory");
>>         }
>>         reader.GetOutput().ReleaseDataFlagOn();
>>
>>         // For Outline...
>>         vtkOutlineFilter outline = new vtkOutlineFilter();
>>         outline.SetInput(reader.GetOutput());
>>
>>         vtkPolyDataMapper outlineMapper = new vtkPolyDataMapper();
>>         outlineMapper.SetInput(outline.GetOutput());
>>
>>         vtkActor outlineActor = new vtkActor();
>>         outlineActor.SetMapper(outlineMapper);
>>
>>         mCube = new vtkMarchingCubes();
>>         mCube.SetInput(reader.GetOutput());
>>         mCube.SetValue(0, val);
>>         mCube.ComputeNormalsOn();
>>         mCube.ComputeGradientsOff();
>>         mCube.UpdateWholeExtent();
>>
>>         vtkPolyDataMapper pdMapper = new vtkPolyDataMapper();
>>         pdMapper.SetInput(mCube.GetOutput());
>>         pdMapper.ImmediateModeRenderingOn();
>>         pdMapper.ScalarVisibilityOff();
>>
>>         // Create and Add Surface Actor...
>>         vtkActor actor = new vtkActor();
>>         actor.GetProperty().SetOpacity(opacityValue);
>>         actor.GetProperty().SetColor(redValue, greenValue, blueValue);
>>         actor.SetMapper(pdMapper);
>>
>>         vtkCanvas vpanSurface = new vtkCanvas();
>>         vpanSurface.GetRenderer().AddActor(actor);
>>         vpanSurface.GetRenderWindow().StereoCapableWindowOn();
>>         //vpanSurface.GetRenderWindow().SetStereoTypeToAnaglyph();
>>         vpanSurface.GetRenderWindow().SetStereoTypeToCrystalEyes();
>>         vpanSurface.GetRenderWindow().SetStereoRender(1);
>>
>> vpanSurface.GetRenderWindow().AddRenderer(vpanSurface.GetRenderer());
>>
>>         // Add the outline actor to the renderer and size...
>> // Here pnlSurfaceViewer is a JPanel...
>>         vpanSurface.GetRenderer().AddActor(outlineActor);
>>         vpanSurface.GetRenderer().ResetCamera();
>>         pnlSurfaceViewer.add(vpanSurface);
>>         pnlSurfaceViewer.setVisible(true);
>>     }
>> </code>
>>
>> --
>> Sathish
>>
>>
>> On Saturday 17 November 2012 10:35 PM, Rodrigo Lovera wrote:
>>
>> I tried with your values, but now i'm getting a black screen, no volume
>> or shape at all.
>>
>>
>>
>>  Rodrigo Lovera Sandoval
>>
>>
>>  2012/11/16 kingvsk at aol.com <kingvsk at aol.com>
>>
>>>  Hi
>>>
>>> Change the value in following line.
>>> surface->SetValue(0, 5);
>>>
>>> Instead of 5 you can use 500 (Bone) or -500 (Skin).
>>>
>>> That is, try either *surface->SetValue(0, 500);* or *surface->SetValue(0,
>>> -500); *
>>>
>>> --
>>> Sathish
>>>
>>>
>>> On Saturday 17 November 2012 02:46 AM, Rodrigo Lovera wrote:
>>>
>>>
>>> Hello everyone,
>>>
>>>  I've got a set of dicom slices which I use for rendering a volume, now
>>> I tried to apply marching cubes to try surface rendering buy i'm only
>>> getting some kind of box and not the head that shold be forming.
>>>
>>>  I'm using atm the following code
>>>
>>>  vtkSmartPointer< vtkDICOMImageReader > reader =
>>>  vtkSmartPointer< vtkDICOMImageReader >::New();
>>>  reader->SetDataByteOrderToLittleEndian();
>>>  //reader->SetDirectoryName(argv[1]);
>>>  reader->SetDirectoryName("C:\\VTK5.10\\DATA\\DICOM");
>>>  reader->SetDataSpacing(1, 1, 1);
>>>  reader->SetDataOrigin(0.0, 0.0, 0.0);
>>>  reader->Update();
>>>
>>>  vtkSmartPointer< vtkMarchingCubes > surface =
>>>  vtkSmartPointer< vtkMarchingCubes >::New();
>>>  surface->SetInputConnection(reader->GetOutputPort());
>>>  surface->ComputeNormalsOn();
>>>  surface->SetValue(0, 5);
>>>   vtkSmartPointer< vtkRenderer > surfacerenderer =
>>>  vtkSmartPointer< vtkRenderer >::New();
>>>  surfacerenderer->SetBackground(0.1, 0.2, 0.3);
>>>
>>>  vtkSmartPointer< vtkRenderWindow > renderwin =
>>>  vtkSmartPointer< vtkRenderWindow >::New();
>>>  renderwin->AddRenderer(surfacerenderer);
>>>   vtkSmartPointer< vtkRenderWindowInteractor > intersurf =
>>>  vtkSmartPointer< vtkRenderWindowInteractor >::New();
>>>  intersurf->SetRenderWindow(renderwin);
>>>
>>>  vtkSmartPointer< vtkPolyDataNormals > premapper =
>>>  vtkSmartPointer< vtkPolyDataNormals >::New();
>>>  premapper->SetInputConnection(surface->GetOutputPort());
>>>  premapper->ComputeCellNormalsOn();
>>>   vtkSmartPointer< vtkPolyDataMapper > surfacemapper =
>>>  vtkSmartPointer< vtkPolyDataMapper >::New();
>>>  surfacemapper->SetInputConnection(premapper->GetOutputPort());
>>>  //surfacemapper->SetInputConnection(surface->GetOutputPort());
>>>
>>>  vtkSmartPointer< vtkActor > actor =
>>>  vtkSmartPointer< vtkActor >::New();
>>>  actor->SetMapper(surfacemapper);
>>>
>>>  vtkSmartPointer< vtkProperty > backFaces =
>>>  vtkSmartPointer< vtkProperty >::New();
>>>  backFaces->SetSpecular(0.0);
>>>  backFaces->SetDiffuse(0.0);
>>>  backFaces->SetAmbient(1.0);
>>>  backFaces->SetAmbientColor(1.0000, 0.3883, 0.2784);
>>>  backFaces->SetOpacity(256);
>>>
>>>  actor->SetBackfaceProperty(backFaces);
>>>
>>>  surfacerenderer->AddActor(actor);
>>>  renderwin->SetSize(800,600);
>>>  //renderWindow->Render();
>>>  intersurf->Start();
>>>
>>>  this->ui->vtksurface->GetRenderWindow()->AddRenderer(surfacerenderer);
>>>
>>>  I'd appreciate any kind of help, example code or advice. Thx in
>>> advance.
>>>
>>>  --
>>> *Rodrigo Lovera *
>>>
>>>
>>>  _______________________________________________
>>> 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
>>>
>>>
>>>
>>
>>
>>  --
>> *Rodrigo aka WarHearT*
>>
>>
>>
>>
>
>
> --
> *Rodrigo aka WarHearT*
>



-- 
*Rodrigo aka WarHearT*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20121123/1e3c8a58/attachment.htm>


More information about the vtkusers mailing list