<span id="result_box" class="long_text"><span style="background-color: rgb(255, 255, 255);" title="Hi, Eric.">Hi, Eric.<br><br></span><span style="background-color: rgb(255, 255, 255);" title="óÐÁÓÉÂÏ ÚÁ
ÏÔËÌÉË."Images from vtkActor2D gets under 2D images" ÜÔÏ
ÏÛÉÂËÁ.">Thanks for the response. "Images from vtkActor2D gets under 2D
images" is a mistake. </span><span style="background-color: rgb(255, 255, 255);" title="ñ ËÏÎÅÞÎÏ ÉÍÅÌ ××ÉÄÕ vtkActor.">Of course, I meant
vtkActor. </span><span style="background-color: rgb(255, 255, 255);" title="ðÒÏÂÌÅÍÁ × ÔÏÍ, ÞÔÏ ËÏÎÔÕÒ ÎÅ ×ÉÄÎÏ ÐÒÉ ÏÔÏÂÒÁÖÅÎÉÉ, ÎÏ ÅÓÌÉ
ÒÁÓÔÑÎÕÔØ ÏËÎÏ, ÔÏ vtkActor2D ÏÓÔÁÅÔÓÑ × ÌÅ×ÏÍ ÎÉÖÎÅÍ ÕÇÌÕ, Á Contours
×ÉÄÎÏ ÎÁ ÚÁÄÎÅÍ ÆÏÎÅ(ÐÏÄ vtkActor2D).">The problem is that the contour is
not visible when displaying, but if you stretch the window and then
vtkActor2D remains in the lower left corner, and the Contours can be
seen in the background (under vtkActor2D). </span><span style="background-color: rgb(255, 255, 255);" title="ñ ÐÒÏÂÏ×ÁÌ ÉÚÍÅÎÉÔØ
ÐÏÚÉÃÉÀ ÐÏ ËÏÏÒÄÉÎÁÔÅ Z, ÎÏ ÜÔÏ ÎÅ ÄÁÌÏ ÒÅÚÕÌØÔÁÔÁ.">I tried to change
the position of the coordinate Z, but it does not yield results. </span><span style="background-color: rgb(255, 255, 255);" title="vtkActor2D ÎÅ
ÉÍÅÅÔ ËÏÏÒÄÉÎÁÔÙ Z.">vtkActor2D has only x,y coordinates.<br></span><span style="background-color: rgb(255, 255, 255);" title="á ÏËÎÏ Ñ ÓÏÚÄÁÀ ÄÌÑ
ÔÏÇÏ, ÞÔÏÂÙ ÐÏÔÏÍ ÐÒÉËÒÅÐÉÔØ vtkImageViewer2 in WindowsForm.">And the
window I create in order to then attach vtkImageViewer2 in WindowsForm.</span></span><br><br><div class="gmail_quote">8 ÁÐÒÅÌÑ 2010 Ç. 17:16 ÐÏÌØÚÏ×ÁÔÅÌØ Eric E. Monson <span dir="ltr"><<a href="mailto:emonson@cs.duke.edu">emonson@cs.duke.edu</a>></span> ÎÁÐÉÓÁÌ:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Hey Andrej,<br>
<br>
I'm trying to understand your problem, but I'm not sure exactly what you mean by "Images from vtkActor2D gets under 2D images". If the problem is that your images show up in front of your contour lines so that the contours are hidden, you can use something like:<br>
<br>
actor.SetPosition(0, 0, 0.01);<br>
<br>
to move the contours out in front of the image, and not have to change the polydata into imagedata.<br>
<br>
Also, you seem to be trying to create a vtkRenderWindow at the beginning of your code but you are using the vtkImageViewer2 later. If you want to view all of your objects in one window, you can use just one or the other (ImageViewer2 creates a render window for you).<br>
<br>
If this doesn't address your problem, be sure to try again to clarify the trouble you're having and I'm sure someone can help.<br>
<br>
Talk to you later,<br>
-Eric<br>
<br>
------------------------------------------------------<br>
Eric E Monson<br>
Duke Visualization Technology Group<br>
<div><div></div><div class="h5"><br>
<br>
On Apr 8, 2010, at 3:17 AM, Andrej Gluhov wrote:<br>
<br>
> Hi.<br>
> I have this problem of combining vtkActor and vtkActor2D for vtkImageViewer2D. Images from vtkActor2D gets under 2D images. I understand that the problem is converting vtkPolyData to vtkImageData, I could use vtkImageData, but do not know how to create it on the contour points.<br>
><br>
> š š š š š š //Create the RenderWindow, Renderer and RenderWindowInteractor<br>
> š š š š š š vtkRenderer ren1 = new vtkRenderer();<br>
> š š š š š š vtkRenderWindow renWin = reWin.GetRenderWindow();<br>
> š š š š š š renWin.AddRenderer(ren1);<br>
> š š š š š š vtkRenderWindowInteractor iren = new vtkRenderWindowInteractor();<br>
> š š š š š š iren.SetRenderWindow(renWin);<br>
><br>
> š š š š š š vtkDICOMImageReader DicomReader = new vtkDICOMImageReader();<br>
> š š š š š š DicomReader.SetFileName(m_strFilePath);<br>
> š š š š š š DicomReader.Update();<br>
><br>
> š š š š š š vtkImageMapper DicomMapper = new vtkImageMapper();<br>
> š š š š š š DicomMapper.SetInputConnection(DicomReader.GetOutputPort());<br>
> š š š š š š DicomMapper.SetColorWindow(255.0);<br>
> š š š š š š DicomMapper.SetColorLevel(127.5);<br>
><br>
> š š š š š š vtkActor2D DicomActor = new vtkActor2D();<br>
> š š š š š š DicomActor.SetMapper(DicomMapper);<br>
><br>
> š š š š š š vtkImageData vol = new vtkImageData();<br>
> š š š š š š vol.SetDimensions(512, 512, 1);<br>
> š š š š š š vol.SetSpacing(1, 1, 1);<br>
> š š š š š š vol.SetOrigin(0, 0, 0);<br>
> š š š š š š vol.SetScalarTypeToFloat();<br>
> š š š š š š vol.AllocateScalars();<br>
><br>
> š š š š š š vtkFloatArray scalars = new vtkFloatArray();<br>
> š š š š š š for (int i = 0; i < 512; i++)<br>
> š š š š š š {<br>
> š š š š š š š š for (int j = 0; j < 512; j++)<br>
> š š š š š š š š {<br>
> š š š š š š š š š š scalars.InsertTuple1(i * 512 + j, m_DoseMap[i * 512 + j]);<br>
> š š š š š š š š }<br>
> š š š š š š }<br>
><br>
> š š š š š š vol.GetPointData().SetScalars(scalars);<br>
> š š š š š š vol.Update();<br>
><br>
> š š š š š š double[] DoseRange = vol.GetScalarRange();<br>
><br>
> š š š š š š vtkLookupTable LUT = new vtkLookupTable();<br>
> š š š š š š LUT.SetTableRange(DoseRange[0], DoseRange[1]);//min dose,max dose<br>
> š š š š š š LUT.SetNumberOfColors(1000);<br>
> š š š š š š LUT.SetSaturationRange(1, 1);<br>
> š š š š š š LUT.SetHueRange(0.67, 0);//blue to red<br>
> š š š š š š LUT.SetAlphaRange(0, 0.3);//opacity<br>
> š š š š š š LUT.Build();<br>
><br>
> š š š š š š vtkImageMapToColors mapToRGBA = new vtkImageMapToColors();<br>
> š š š š š š mapToRGBA.SetInput(vol);<br>
> š š š š š š mapToRGBA.SetOutputFormatToRGBA();<br>
> š š š š š š mapToRGBA.SetLookupTable(LUT);<br>
><br>
> š š š š š š vtkImageMapper ColorMapper = new vtkImageMapper();<br>
> š š š š š š ColorMapper.SetInputConnection(mapToRGBA.GetOutputPort());<br>
> š š š š š š ColorMapper.SetColorWindow(255.0);<br>
> š š š š š š ColorMapper.SetColorLevel(127.5);<br>
><br>
> š š š š š š vtkActor2D ColorActor = new vtkActor2D();<br>
> š š š š š š ColorActor.SetMapper(ColorMapper);<br>
><br>
> š š š š š š vtkContourFilter cf = new vtkContourFilter();<br>
> š š š š š š cf.SetInput(vol);<br>
> š š š š š š //cf.SetValue(0, Convert.ToDouble(dataGridViewIsodose.Rows[i].Cells[1].Value));<br>
> š š š š š š cf.SetValue(0, 100);<br>
> š š š š š š cf.Update();<br>
><br>
> š š š š š š vtkPolyDataMapper mapper = new vtkPolyDataMapper();<br>
> š š š š š š mapper.SetInputConnection(cf.GetOutputPort());<br>
> š š š š š š mapper.ScalarVisibilityOff();<br>
><br>
> š š š š š š vtkActor actor = new vtkActor();<br>
> š š š š š š actor.SetMapper(mapper);<br>
> š š š š š š actor.GetProperty().SetColor(1, 0, 0);<br>
><br>
> š š š š š š vtkImageViewer2 viewer = new vtkImageViewer2();<br>
> š š š š š š viewer.SetupInteractor(iren);<br>
> š š š š š š viewer.GetRenderer().AddActor(DicomActor);<br>
> š š š š š š viewer.GetRenderer().AddActor(ColorActor);<br>
> š š š š š š viewer.GetRenderer().AddActor(actor);<br>
> š š š š š š viewer.GetRenderer().ResetCamera();<br>
> š š š š š š viewer.Render();<br>
><br>
> Thanks in advance.<br>
><br>
> --<br>
> ó õ×ÁÖÅÎÉÅÍ,<br>
> áÎÄÒÅÊ.<br>
> Best regards, Andrew<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 <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: <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>
</blockquote></div><br><br clear="all"><br>-- <br>ó õ×ÁÖÅÎÉÅÍ,<br>áÎÄÒÅÊ.<br>Best regards, Andrew<br>