<div>Hi, VTK expert guys,<br><br>I want to make a statistic of gray value, so I need to get the gray value of all the pixels for a DICOM image. My code below can't get the gray value correctly. I use C# with Activiz. The scalar component should be 1 for the DICOM image.<br><br>int[] dims = new int[3];<br>dims = m_imageViewer.GetInput().GetDimensions();<br>int numComponents = m_imageViewer.GetInput().GetNumberOfScalarComponents(); //The scalar component is 1.<br>int numPoints = m_imageViewer.GetInput().GetNumberOfPoints();<br>string typestring = m_imageViewer.GetInput().GetScalarTypeAsString();<br>for (int z = 0; z < dims[2]; z++)<br>{<br>   for (int y = 0; y < dims[1]; y++)<br>   {<br>     for (int x = 0; x < dims[0]; x++)<br>     {<br>       System.IntPtr pixel = (m_imageViewer.GetInput().GetScalarPointer(x, y, z));<br>       int[] pixelvalue = new int[numComponents];<br>       Marshal.Copy(pixel, pixelvalue, 0, numComponents );<br>       ...<br>     }<br>   }<br>}<br><br>After Marshal.Copy(), the pixelvalue array store wrong value which is less greatly then the lower bound of GetScalarRange().<br><br>Any wrong code?<br><br>Thanks<br>Liu Peng<br></div><br><br><span title="neteasefooter"><p> </p></span>