<span id="result_box" class="long_text"><span style="background-color: rgb(255, 255, 255);" title="åÓŌŲ ĢÉ ĶÅŌĻÄ Ó ŠĻĶĻŻŲĄ ĖĻŌĻŅĻĒĻ ĶĻÖĪĻ ĪĮĢĻÖÉŌŲ ÄŅÕĒ ĪĮ ÄŅÕĒĮ vtkImageData( ŠÅŅףŹ ÓĢĻŹ ÜŌĻ DICOM slice, ×ŌĻŅĻŹ ÜŌĻ ĶĻŹ ÓĻĀÓŌ×ÅĪĪŁŹ ĶĮÓÓÉ× ŌĻŽÅĖ) ÄĢŃ vtkImageViewer?">Hi,<br>
Is
there a method by which you can impose on each other vtkImageData (the
first layer is a DICOM slice, the second is my own array of points) for
vtkImageViewer?<br></span><span style="background-color: rgb(255, 255, 255);" title="äĢŃ vtkRenderer Ń ÓĻŚÄĮĄ Ä×Į actor's É ÄĢŃ ×ÅŅČĪÅĒĻ ÕÓŌĮĪĮ×ĢÉ×ĮĄ ŠŅĻŚŅĮŽĪĻÓŌŲ.">For vtkRenderer I create two actor's for the top sets the transparency.</span></span> And for viewer I see only second array.<br>
//Code<br> vtkDICOMImageReader DicomReader = new vtkDICOMImageReader();<br> DicomReader.SetFileName(@"");<br> DicomReader.Update();<br> vtkImageData vol = new vtkImageData();<br>
vol.SetDimensions(512, 512, 2);<br> vol.SetSpacing(1, 1, 1);<br> vol.SetOrigin(0, 0, 0);<br> vol.SetScalarTypeToUnsignedChar();<br> vol.SetNumberOfScalarComponents(3);<br>
vol.AllocateScalars();<br clear="all"> for (int i = 0; i < 512; i++)<br> {<br> for (int j = 0; j < 512; j++)<br> {<br> vol.SetScalarComponentFromFloat(i, j, 0, 0, (float)vtkMath.Random(0,255));<br>
vol.SetScalarComponentFromFloat(i, j, 0, 1, 0);<br> vol.SetScalarComponentFromFloat(i, j, 0, 2, 0);<br> }<br> }<br> vtkImageViewer viewer = new vtkImageViewer();<br>
viewer.SetInputConnection(DicomReader.GetOutputPort());<br> viewer.SetInput(vol);//On the <span id="result_box" class="short_text"><span style="background-color: rgb(255, 255, 255);" title="īĮ ÜĖŅĮĪÅ">Screen</span></span><br>
viewer.SetSize(512, 512);<br> viewer.SetColorWindow(1000);<br> viewer.SetColorLevel(1);<br> viewer.Render();<br>-- <br>ó õ×ĮÖÅĪÉÅĶ,<br>įĪÄŅÅŹ.<br>Best regards, Andrew<br>