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="background-color:rgb(255,255,255)"><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 class="Apple-tab-span" style="white-space:pre">        </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 class="Apple-tab-span" style="white-space:pre">        </span>vtkRenderer* renderer = imageViewer-&gt;GetRenderer();</font></div>

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

<div><font face="&#39;courier new&#39;, monospace"><span class="Apple-tab-span" style="white-space:pre">        </span>imageViewer-&gt;SetRenderWindow(widget-&gt;GetRenderWindow());</font></div><div><font face="&#39;courier new&#39;, monospace"><span class="Apple-tab-span" style="white-space:pre">        </span>imageViewer-&gt;Render();<span class="Apple-tab-span" style="white-space:pre">        </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: +33 (0)9 82 50 90 09<br>- Mobile: +33 (0)6 66 67 84 70<br></div><br>
</div>