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'Ecole Nationale d'Ingénieurs du Val de Loire (ENIVL), Blois, France; <br>
- Master of Computer Science student at l'Ecole Polytechnique de l'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"><<a href="mailto:huudienkhue.le@gmail.com">huudienkhue.le@gmail.com</a>></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="'courier new', monospace">vtkSmartPointer<vtkInteractorStyleRubberBand2D> style = vtkSmartPointer<vtkInteractorStyleRubberBand2D>::New();</font></div><div>
<font face="'courier new', monospace"> <font color="#ff0000">style->AddObserver ( vtkCommand::SelectionChangedEvent, selectionChangedCallback );</font></font></div><div><font face="'courier new', monospace"><br>
</font></div><div><div><font face="'courier new', monospace"> vtkSmartPointer<vtkImageViewer2> imageViewer = vtkSmartPointer<vtkImageViewer2>::New();</font></div><div><font face="'courier new', monospace"> vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();</font></div>
<div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace"> <span style><font color="#ff0000">renderWindowInteractor->SetInteractorStyle (style);</font></span></font></div>
<div><div><font face="'courier new', monospace"> imageViewer->SetInput(vtkImage);</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">        </span>imageViewer->SetupInteractor(renderWindowInteractor);</font></div>
<div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">        </span>vtkRenderer* renderer = imageViewer->GetRenderer();</font></div>
<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">        </span>renderer->ResetCamera();</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">        </span>imageViewer->SetSize(widget->geometry().width(),widget->geometry().height());</font></div>
<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">        </span>imageViewer->SetRenderWindow(widget->GetRenderWindow());</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">        </span>imageViewer->Render();<span style="white-space:pre-wrap">        </span></font></div>
</div><div><font face="'courier new', monospace"> renderWindowInteractor->SetRenderWindow ( renderWindow );</font></div><div><font face="'courier new', monospace"> renderWindowInteractor->Initialize();</font></div>
<div><br></div><div>then the program can display the image, but it does not allow selecting regions. I think what'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't use ImageViewer2:</div><div><br></div><div> <font face="'courier new', monospace"> // Create an actor</font></div><div><font face="'courier new', monospace"> vtkSmartPointer<vtkImageActor> actor = vtkSmartPointer<vtkImageActor>::New();</font></div>
<div><font face="'courier new', monospace"> actor->SetInput( vtkImage);</font></div><div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace"> // Setup renderer</font></div>
<div><font face="'courier new', monospace"> vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();</font></div><div><font face="'courier new', monospace"> renderer->AddActor ( actor );</font></div>
<div><font face="'courier new', monospace"> renderer->ResetCamera();</font></div><div><font face="'courier new', monospace"><br></font></div><div><div><font face="'courier new', monospace"> vtkSmartPointer<vtkRenderWindow> renderWindow=widget->GetRenderWindow();</font></div>
<div><font face="'courier new', monospace"> renderWindow->AddRenderer(renderer);</font></div></div><div><div><font face="'courier new', monospace"> vtkSmartPointer<vtkInteractorStyleRubberBand2D> style = vtkSmartPointer<vtkInteractorStyleRubberBand2D>::New();</font></div>
<div><font face="'courier new', monospace"> <font color="#ff0000">style->AddObserver ( vtkCommand::SelectionChangedEvent, selectionChangedCallback );</font></font></div><div><font face="'courier new', monospace"> </font></div>
<div><font face="'courier new', monospace"> // Setup render window interactor</font></div><div><font face="'courier new', monospace"> vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = </font></div>
<div><font face="'courier new', monospace"> vtkSmartPointer<vtkRenderWindowInteractor>::New();</font></div><div><font face="'courier new', monospace"> renderWindowInteractor->SetInteractorStyle ( style );</font></div>
</div><div><div><font face="'courier new', monospace"> renderWindowInteractor->SetRenderWindow ( renderWindow );</font></div><div><font face="'courier new', monospace"> renderWindowInteractor->Initialize(); </font></div>
<div><font face="'courier new', monospace"> renderWindowInteractor->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'Ecole Nationale d'Ingénieurs du Val de Loire (ENIVL), Blois, France; <br>- Master of Computer Science student at l'Ecole Polytechnique de l'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>