Any ideas please?<br clear="all">_____________________<br><br><i>Huu Dien Khue LE</i><br>- Automated Systems, Instrumentation and Computer Engineering student <div>  at l&#39;Ecole Nationale d&#39;Ingénieurs du Val de Loire (ENIVL), Blois, France; <br>

- Master of Computer Science student at l&#39;Ecole Polytechnique de l&#39;Université de Tours, France. <br>- Home: 10 rue Ronceraie, 41000 Blois, France<br>- Phone: +33 (0)9 82 50 90 09<br>- Mobile: +33 (0)6 66 67 84 70<br>

</div><br>
<br><br><div class="gmail_quote">On Wed, Mar 14, 2012 at 12:01 PM, Khue Le <span dir="ltr">&lt;<a href="mailto:huudienkhue.le@gmail.com">huudienkhue.le@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hello everybody,<div><br></div><div>I am writing a program using ImageViewer2 to display 2D images, in which I have to be able to select regions (by clicking and dragging the left mouse button). The image viewer should be embedded in a QVTKWidget.</div>


<div><br></div><div>The problem is that I cannot get the both (displaying the image and selecting regions) working at the same time, but only one of them. Let me detail.</div><div><br></div><div>1. If I use 
ImageViewer2: </div><div>        <font face="&#39;courier new&#39;, monospace">vtkSmartPointer&lt;vtkInteractorStyleRubberBand2D&gt; style = vtkSmartPointer&lt;vtkInteractorStyleRubberBand2D&gt;::New();</font></div><div>


<font face="&#39;courier new&#39;, monospace">        <font color="#ff0000">style-&gt;AddObserver ( vtkCommand::SelectionChangedEvent, selectionChangedCallback );</font></font></div><div><font face="&#39;courier new&#39;, monospace"><br>


</font></div><div><div><font face="&#39;courier new&#39;, monospace">        vtkSmartPointer&lt;vtkImageViewer2&gt; imageViewer = vtkSmartPointer&lt;vtkImageViewer2&gt;::New();</font></div><div><font face="&#39;courier new&#39;, monospace">        vtkSmartPointer&lt;vtkRenderWindowInteractor&gt; renderWindowInteractor = vtkSmartPointer&lt;vtkRenderWindowInteractor&gt;::New();</font></div>


<div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">        <span style><font color="#ff0000">renderWindowInteractor-&gt;SetInteractorStyle (style);</font></span></font></div>


<div><div><font face="&#39;courier new&#39;, monospace">        imageViewer-&gt;SetInput(vtkImage);</font></div><div><font face="&#39;courier new&#39;, monospace"><span style="white-space:pre-wrap">        </span>imageViewer-&gt;SetupInteractor(renderWindowInteractor);</font></div>


<div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace"><span style="white-space:pre-wrap">        </span>vtkRenderer* renderer = imageViewer-&gt;GetRenderer();</font></div>


<div><font face="&#39;courier new&#39;, monospace"><span style="white-space:pre-wrap">        </span>renderer-&gt;ResetCamera();</font></div><div><font face="&#39;courier new&#39;, monospace"><span style="white-space:pre-wrap">        </span>imageViewer-&gt;SetSize(widget-&gt;geometry().width(),widget-&gt;geometry().height());</font></div>


<div><font face="&#39;courier new&#39;, monospace"><span style="white-space:pre-wrap">        </span>imageViewer-&gt;SetRenderWindow(widget-&gt;GetRenderWindow());</font></div><div><font face="&#39;courier new&#39;, monospace"><span style="white-space:pre-wrap">        </span>imageViewer-&gt;Render();<span style="white-space:pre-wrap">        </span></font></div>


</div><div><font face="&#39;courier new&#39;, monospace">        renderWindowInteractor-&gt;SetRenderWindow ( renderWindow );</font></div><div><font face="&#39;courier new&#39;, monospace">        renderWindowInteractor-&gt;Initialize();</font></div>


<div><br></div><div>then the program can display the image, but it does not allow selecting regions. I think what&#39;s wrong here is that the interactor style did not change (am I right?). So to get the event handler working, we have to <b>change the interactor style of the image viewer</b>. Is there any way to do it?</div>


<div><br></div><div>2. If I don&#39;t use ImageViewer2:</div><div><br></div><div>               <font face="&#39;courier new&#39;, monospace"> // Create an actor</font></div><div><font face="&#39;courier new&#39;, monospace">                vtkSmartPointer&lt;vtkImageActor&gt; actor = vtkSmartPointer&lt;vtkImageActor&gt;::New();</font></div>


<div><font face="&#39;courier new&#39;, monospace">                actor-&gt;SetInput( vtkImage);</font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">                // Setup renderer</font></div>


<div><font face="&#39;courier new&#39;, monospace">                vtkSmartPointer&lt;vtkRenderer&gt; renderer = vtkSmartPointer&lt;vtkRenderer&gt;::New();</font></div><div><font face="&#39;courier new&#39;, monospace">                renderer-&gt;AddActor ( actor );</font></div>


<div><font face="&#39;courier new&#39;, monospace">                renderer-&gt;ResetCamera();</font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><div><font face="&#39;courier new&#39;, monospace">                vtkSmartPointer&lt;vtkRenderWindow&gt; renderWindow=widget-&gt;GetRenderWindow();</font></div>


<div><font face="&#39;courier new&#39;, monospace">                renderWindow-&gt;AddRenderer(renderer);</font></div></div><div><div><font face="&#39;courier new&#39;, monospace">                vtkSmartPointer&lt;vtkInteractorStyleRubberBand2D&gt; style = vtkSmartPointer&lt;vtkInteractorStyleRubberBand2D&gt;::New();</font></div>


<div><font face="&#39;courier new&#39;, monospace">                <font color="#ff0000">style-&gt;AddObserver ( vtkCommand::SelectionChangedEvent, selectionChangedCallback );</font></font></div><div><font face="&#39;courier new&#39;, monospace"> </font></div>


<div><font face="&#39;courier new&#39;, monospace">                // Setup render window interactor</font></div><div><font face="&#39;courier new&#39;, monospace">                vtkSmartPointer&lt;vtkRenderWindowInteractor&gt; renderWindowInteractor = </font></div>


<div><font face="&#39;courier new&#39;, monospace">                vtkSmartPointer&lt;vtkRenderWindowInteractor&gt;::New();</font></div><div><font face="&#39;courier new&#39;, monospace">                renderWindowInteractor-&gt;SetInteractorStyle ( style );</font></div>


</div><div><div><font face="&#39;courier new&#39;, monospace">                renderWindowInteractor-&gt;SetRenderWindow ( renderWindow );</font></div><div><font face="&#39;courier new&#39;, monospace">                renderWindowInteractor-&gt;Initialize(); </font></div>


<div><font face="&#39;courier new&#39;, monospace">                renderWindowInteractor-&gt;Start();</font></div></div><div><br></div><div>then I can very well select regions in the widget, but the image does not show up.</div>


<div><br></div><div><br></div><div>I would really appreciate if someone can help.</div><div><br></div><div>Thank you for reading.</div>_____________________ <br><br><i>Huu Dien Khue LE</i><br>- Automated Systems, Instrumentation and Computer Engineering student <div>


  at l&#39;Ecole Nationale d&#39;Ingénieurs du Val de Loire (ENIVL), Blois, France; <br>- Master of Computer Science student at l&#39;Ecole Polytechnique de l&#39;Université de Tours, France. <br>- Home: 10 rue Ronceraie, 41000 Blois, France<br>


- Phone: <a href="tel:%2B33%20%280%299%2082%2050%2090%2009" value="+33982509009" target="_blank">+33 (0)9 82 50 90 09</a><br>- Mobile: <a href="tel:%2B33%20%280%296%2066%2067%2084%2070" value="+33666678470" target="_blank">+33 (0)6 66 67 84 70</a><br>

</div><br>
</div>
</blockquote></div><br>