<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: &#39;Segoe UI&#39;; 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="&#39;Segoe UI&#39;" 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: &#39;Segoe UI&#39;; 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&#39;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&lt;double&gt; ^metaScalarRange = gcnew array&lt;double&gt;(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(&quot;H:\\work\\Master Degree\\DataSet\\case1-\\DICOM\\PA1\\ST1\\SE1&quot;);</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-&gt;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-&gt;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-&gt;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&lt;double&gt; ^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 &gt; (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-&gt;SetColor(colorTransferFunction);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>volumeProperty-&gt;SetScalarOpacity(opacityIsoTransferFunction);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>volumeProperty-&gt;ShadeOn();</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>volumeProperty-&gt;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-&gt;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-&gt;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-&gt;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-&gt;GetProperty()-&gt;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()-&gt;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-&gt;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>