<div dir="ltr">Dear David,<div><br></div><div>the proplem in vtkimageactor wich is complain, after applying your code the same error appear</div><div>any suggesion please</div><div><br></div><div><br></div><div><div>vtk.vtkDICOMImageReader VDR = new vtk.vtkDICOMImageReader();</div>
<div> VDR.SetDirectoryName(@"G:\Master Degree\DataSet\case2\DICOM\PA1\ST1\SE2");</div><div> VDR.SetDataOrigin(0, 0, 0);</div><div> VDR.Update();</div><div><br></div><div> vtkImageShiftScale ss = new vtkImageShiftScale();</div>
<div> ss.SetOutputScalarTypeToUnsignedChar();</div><div> ss.SetInputConnection(VDR.GetOutputPort());</div><div> ss.Update();</div><div><br></div><div> // decrease the dataset data for large data preprocessing </div>
<div><br></div><div> vtkImageShrink3D VIS = new vtkImageShrink3D();</div><div> VIS.SetShrinkFactors(2, 2, 2);</div><div> VIS.SetInputConnection(ss.GetOutputPort());</div><div> VIS.Update();</div>
<div><br></div><div> vtkImageThreshold VIT = new vtkImageThreshold();</div><div> VIT.ThresholdBetween(200, 2000);</div><div> VIT.SetInputConnection(VIS.GetOutputPort());</div><div> VIT.Update();</div>
<div><br></div><div> ///// Start the creation of volume rendering </div><div><br></div><div> //1. Gget the range of data </div><div> vtk.vtkImageChangeInformation VIC = new vtk.vtkImageChangeInformation();</div>
<div> VIC.SetInput(VDR.GetOutput());</div><div> VIC.CenterImageOn();</div><div> VIC.Update();</div><div><br></div><div> vtk.vtkImageData VoxelData = new vtk.vtkImageData();</div>
<div> VoxelData = VIC.GetOutput();</div><div> VoxelData.AllocateScalars();</div><div><br></div><div> vtkImageActor imageActor = new vtkImageActor();</div><div> imageActor.SetInput(VoxelData);</div>
<div><br></div><div> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</div><div> // Create the RenderWindow, Renderer and both Actors</div>
<div> //</div><div> vtkRenderer ren1 = new vtkRenderer();</div><div> vtkRenderWindow renWin = new vtkRenderWindow();</div><div> renWin.AddRenderer(ren1);</div><div> vtkRenderWindowInteractor iren = new vtkRenderWindowInteractor();</div>
<div> iren.SetRenderWindow(renWin);</div><div><br></div><div> // Add the actors to the renderer, set the background and size</div><div> //</div><div> ren1.AddActor(imageActor);</div>
<div> ren1.SetBackground(.1, .2, .4);</div><div><br></div><div><br></div><div><br></div><div> ren1.ResetCamera();</div><div> ren1.ResetCameraClippingRange();</div><div><br></div><div> renWin.Render();</div>
<div><br></div><div><br></div><br><div class="gmail_quote">On Sun, Mar 7, 2010 at 10:25 PM, David Feng <span dir="ltr"><<a href="mailto:d.feng1@gmail.com">d.feng1@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I'm assuming it's the vtkImageShrink3D filter that's complaining. I'm<br>
surprised it only handles unsigned chars. vtkImageShiftScale will<br>
convert from one type to another:<br>
<br>
vtkImageShiftScale ss = vtk.vtkImageShiftScale()<br>
ss.SetOutputScalarTypeToUnsignedChar()<br>
ss.SetInputConnection(VDR.GetOutputPort())<br>
ss.Update()<br>
<br>
vtkImageResample might be able to do the resampling you need without<br>
the unsigned char restriction. Not sure though.<br>
<br>
David<br>
<div><div></div><div class="h5"><br>
On Sun, Mar 7, 2010 at 2:21 PM, Ali Habib <<a href="mailto:ali.mahmoud.habib@gmail.com">ali.mahmoud.habib@gmail.com</a>> wrote:<br>
> Dear All,<br>
> I read DICOm data to VTK image data and display it but it give error that<br>
> "this filter requires unsigned char scalar " I want to convert the data to<br>
> unsigned char<br>
> the code use:<br>
> vtk.vtkDICOMImageReader VDR = new vtk.vtkDICOMImageReader();<br>
> VDR.SetDirectoryName(@"G:\Master<br>
> Degree\DataSet\case2\DICOM\PA1\ST1\SE2");<br>
> VDR.SetDataOrigin(0, 0, 0);<br>
> VDR.Update();<br>
> // decrease the dataset data for large data preprocessing<br>
> vtkImageShrink3D VIS = new vtkImageShrink3D();<br>
> VIS.SetShrinkFactors(2, 2, 2);<br>
> VIS.SetInputConnection(VDR.GetOutputPort());<br>
> VIS.Update();<br>
> vtkImageThreshold VIT = new vtkImageThreshold();<br>
> VIT.ThresholdBetween(200, 2000);<br>
> VIT.SetInputConnection(VIS.GetOutputPort());<br>
> VIT.Update();<br>
> ///// Start the creation of volume rendering<br>
> //1. Gget the range of data<br>
> vtk.vtkImageChangeInformation VIC = new<br>
> vtk.vtkImageChangeInformation();<br>
> VIC.SetInput(VDR.GetOutput());<br>
> VIC.CenterImageOn();<br>
> VIC.Update();<br>
> vtk.vtkImageData VoxelData = new vtk.vtkImageData();<br>
> VoxelData = VIC.GetOutput();<br>
> VoxelData.AllocateScalars();<br>
> vtkImageActor imageActor = new vtkImageActor();<br>
> imageActor.SetInput(VoxelData);<br>
><br>
> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br>
> // Create the RenderWindow, Renderer and both Actors<br>
> //<br>
> vtkRenderer ren1 = new vtkRenderer();<br>
> vtkRenderWindow renWin = new vtkRenderWindow();<br>
> renWin.AddRenderer(ren1);<br>
> vtkRenderWindowInteractor iren = new<br>
> vtkRenderWindowInteractor();<br>
> iren.SetRenderWindow(renWin);<br>
> // Add the actors to the renderer, set the background and size<br>
> //<br>
> ren1.AddActor(imageActor);<br>
> ren1.SetBackground(.1, .2, .4);<br>
><br>
><br>
> ren1.ResetCamera();<br>
> ren1.ResetCameraClippingRange();<br>
> renWin.Render();<br>
> Best regards<br>
><br>
><br>
</div></div>> _______________________________________________<br>
> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at<br>
> <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
><br>
> Please keep messages on-topic and check the VTK FAQ at:<br>
> <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
><br>
><br>
<font color="#888888"><br>
<br>
<br>
--<br>
<a href="http://www.cs.unc.edu/~dfeng" target="_blank">http://www.cs.unc.edu/~dfeng</a><br>
</font></blockquote></div><br></div></div>