<div dir="ltr">Hi all,<div><br></div><div>I am trying to use the following steps to create tetrahdral mesh as appear in the photo ins this link : <span class="Apple-style-span" style="font-family: 'Segoe UI'; font-size: 12px; white-space: pre; "><a href="http://www.iue.tuwien.ac.at/phd/fleischmann/img346.gif">http://www.iue.tuwien.ac.at/phd/fleischmann/img346.gif</a> </span></div>
<div><font class="Apple-style-span" face="'Segoe UI'" size="3"><span class="Apple-style-span" style="font-size: 12px; white-space: pre;"><br></span></font></div><div><span class="Apple-style-span" style="font-family: 'Segoe UI'; font-size: 12px; white-space: pre; ">1. I read the 2D slices using <span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; ">vtkDICOMImageReader </span></span></div>
<div><span class="Apple-style-span" style="font-family: arial, sans-serif; border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; ">2. apply <span class="Apple-style-span" style="font-size: 13px; ">delaunry3D or vtkDataSetTriangleFilte for the vtkdicomimagereader output.</span></span></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;">3. defien iso value to render the skull </span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;">4. create a volume and rendering it. </span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><br>
</span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;">there're two error appears , which are :</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;">1.vtkstreamingdemandpibline error. </span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;">2. vtkfixedpointvolumeraycastmapper error : No input.</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><br>
</span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><br>
</span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;">I think the problem in use the output of vtkdicomimagereader in delaunary3d any suggestion please </span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><br>
</span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><br>
</span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><br>
</span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;">the code is :</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><br>
</span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><div>
//Variables</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>array<double> ^metaScalarRange = gcnew array<double>(2) { 0, 0 };</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtk:: vtkRenderWindow renwM = gcnew vtk::vtkRenderWindow();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtk:: vtkRenderer ren1 = gcnew vtkRenderer();</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtk:: vtkRenderWindowInteractor iren = gcnew vtk::vtkRenderWindowInteractor();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtk:: vtkVolume volume = gcnew vtk::vtkVolume();</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>renwM::AddRenderer(ren1);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>iren::SetRenderWindow(renwM);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>// Read a DICOM series path:</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtk:: vtkDICOMImageReader VDR = gcnew vtk::vtkDICOMImageReader();</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>VDR::SetDirectoryName("H:\\work\\Master Degree\\DataSet\\case1-\\DICOM\\PA1\\ST1\\SE1");</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>VDR::SetDataOrigin(0, 0, 0);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>VDR->Update();</div><div><br></div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>/////</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtk:: vtkImageChangeInformation VIC = gcnew vtk::vtkImageChangeInformation();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>VIC::SetInput(VDR::GetOutput());</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>VIC::CenterImageOn();</div><div>
<br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>VIC->Update();</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>///////// Applying the mesh</div><div>
<span class="Apple-tab-span" style="white-space:pre">                        </span>vtkDataSetTriangleFilter ^VDST = gcnew vtkDataSetTriangleFilter();</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>VDST->SetInputConnection(VDR::GetOutputPort());</div>
<div><br></div><div>// </div><div>// vtkDelaunay3D VDST = new vtkDelaunay3D();</div><div>//</div><div>// VDST.SetInputConnection(VDR.GetOutputPort()); </div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>// Load the data on vtkimagedata.</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtk:: vtkImageData VoxelData = VIC::GetOutput();</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>// Start adjust the rendering</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtkVolumeProperty ^volumeProperty = gcnew vtkVolumeProperty();</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>metaScalarRange = VoxelData::GetScalarRange();</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>int isovalue = Convert::ToInt32(0.8 * (metaScalarRange[1] + metaScalarRange[0]));</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>/////////////////////////////////////////////</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>array<double> ^inputRange = VoxelData::GetScalarRange();</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtk:: vtkPiecewiseFunction opacityIsoTransferFunction = gcnew vtk::vtkPiecewiseFunction();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>double per = ((inputRange[1] - inputRange[0]) / 100);</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>if (isovalue > (inputRange[0] + per))</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>{</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>opacityIsoTransferFunction::AddPoint(inputRange[0], 0);</div><div>
<br></div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>opacityIsoTransferFunction::AddPoint(isovalue - (per), 0);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>}</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>opacityIsoTransferFunction::AddPoint(isovalue, 1);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>opacityIsoTransferFunction::AddPoint(inputRange[1], 1);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtk:: vtkColorTransferFunction colorTransferFunction = gcnew vtk::vtkColorTransferFunction();</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>colorTransferFunction::AddRGBPoint(inputRange[0], 1.0, 1.0, 1.0);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>colorTransferFunction::AddRGBPoint(inputRange[1], 1.0, 1.0, 1.0);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>volumeProperty->SetColor(colorTransferFunction);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>volumeProperty->SetScalarOpacity(opacityIsoTransferFunction);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>volumeProperty->ShadeOn();</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>volumeProperty->SetInterpolationTypeToLinear();</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>volume::SetProperty(volumeProperty);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>///////////////////////////</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtk:: vtkFixedPointVolumeRayCastMapper volumeMapper = gcnew vtk::vtkFixedPointVolumeRayCastMapper();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>volumeMapper::SetInputConnection(VDST->GetOutputPort());</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>volumeMapper::AutoAdjustSampleDistancesOn();</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>volumeMapper->Update();</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>volume::SetMapper(volumeMapper);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>volume->Update();</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>//////////////////////////////////</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtkActor ^actor = gcnew vtkActor();</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>actor->GetProperty()->SetRepresentationToWireframe();</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>ren1::AddVolume(volume);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>ren1::AddActor(actor);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>ren1::ResetCamera();</div><div><br></div><div>// ren1.GetActiveCamera().Azimuth(0);</div><div>// ren1.GetActiveCamera().Roll(0);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>ren1::GetActiveCamera()->Elevation(90);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>renwM::Render();</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>iren->Initialize();</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>iren::Enable();</div><div><br></div><div><br>
</div><div>best regards </div></span></font></div></div>