[prev in list] [next in list] [prev in thread] [next in thread]
List: vtkusers
Subject: Re: [vtkusers] Extract slices from a vtkMetaImageReader with
From: "mathilde.merle" <mathilde.merle () laposte ! net>
Date: 2011-06-30 15:11:51
Message-ID: 2246891.183551.1309446676999.JavaMail.www () wwinf8222
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
Thank you for "SetSlice", it is really usefull.
When I pick a pixel on the vtkImageViewer2, I display the good location in the image \
and in space.
However It still remains 2 problems :
- The image does not change at the beginning if I change the slice_nb.
- When I move the mouse on the image, I want to change the slice :
case vtkCommand::MouseMoveEvent:
style->OnMouseMove();
// Change slice
int slice_nb = Viewer->GetSlice();
Viewer->SetSlice(slice_nb++);
cout<<"MOUSE MOVE EVENT :"<Render();
style->OnMouseMove();
break;
And slice_nb does not change even if I enter several times in this code.
(excuse my english...)
Mathilde
> Message du 30/06/11 16:19
> De : "Jothy"
> A : "mathilde.merle"
> Copie à : "vtkusers vtk org"
> Objet : Re: [vtkusers] Extract slices from a vtkMetaImageReader with vtkExtractVOI
>
> If you use vtkImageViewer2, you shouls use setSlice and setorientationTo methods to \
> set the desired orientation adn the slice no after setting the \
> setInput/setinputConnection.
> have a look at this link
>
> http://devsample.org/index.php?option=com_content&task=view&id=47&Itemid=27
>
> Jothy
>
> On Thu, Jun 30, 2011 at 4:01 PM, mathilde.merle wrote:
>
> I use vtkImageViewer2 :
>
> // VIEWER TOOL : Pick a Pixel
> // Picker to pick pixels
> vtkSmartPointer propPicker = vtkSmartPointer::New();
> propPicker->PickFromListOn();
>
> // Give the picker a prop to pick
> vtkSmartPointer imageViewer = vtkSmartPointer::New();
> vtkImageActor* imageActor = imageViewer->GetImageActor();
> propPicker->AddPickList(imageActor);
>
> // disable interpolation, so we can see each pixel
> imageActor->InterpolateOff();
>
> > Message du 30/06/11 15:54
> > De : "Jothy"
> > A : "mathilde.merle"
> > Copie à : "vtkusers vtk org"
> > Objet : Re: [vtkusers] Extract slices from a vtkMetaImageReader with \
> > vtkExtractVOI
> >
Which image viewer are you using here?
> >
> > Jothy
> >
> >
On Thu, Jun 30, 2011 at 3:41 PM, mathilde.merle wrote:
> >
> >
> > Hello,
> >
> > I'm trying to extract slices from a vtkImagedata sequence and then display it.
> >
> > I tryed with vtkImageReslice and then vtkextractVOI, but it don't work. The image \
> > displayed is always the same even if I change 'slice_nb'.
> > How can I do ?
> >
> > My code :
> >
> > int* dims = reader->GetOutput()->GetDimensions();
> >
> > // extract slice
> >
> > int slice_nb = 0;
> >
> > vtkSmartPointer extractVOI = vtkSmartPointer::New();
> > extractVOI->SetInputConnection(reader->GetOutputPort());
> > extractVOI->SetVOI(0,dims[0],0,dims[1], slice_nb, slice_nb); //extract first \
> > image extractVOI->Update();
> >
> > vtkImageData* extracted = extractVOI->GetOutput();
> >
> > int* dims2 = extracted->GetDimensions();
> > cout << "DimensionsExtracted = ";
> > for (int i=0; i<(int)(sizeof(dims2)/sizeof(int)+1); i++) {
> > cout << dims2[i]<<", ";
> > }
> > cout << endl; // Get a good image dimension
> >
> > // Visualize
> > vtkSmartPointer renderWindowInteractor = vtkSmartPointer::New();
> > imageViewer->SetInputConnection(extractVOI->GetOutputPort() );
> > imageViewer->SetupInteractor( renderWindowInteractor );
> > imageViewer->SetSize( 600, 600 );
> >
> > vtkRenderer* renderer = imageViewer->GetRenderer();
> > renderer->ResetCamera();
> > renderer->GradientBackgroundOn();
> > renderer->SetBackground(0,0,0);
> > renderer->SetBackground2(1,1,1);
> >
> > // Annotate the image with window/level and mouse over pixel information
> > vtkSmartPointer cornerAnnotation = vtkSmartPointer::New();
> > cornerAnnotation->SetLinearFontScaleFactor( 2 );
> > cornerAnnotation->SetNonlinearFontScaleFactor( 1 );
> > cornerAnnotation->SetMaximumFontSize( 20 );
> > cornerAnnotation->SetText( 0, "Off Image" );
> > cornerAnnotation->SetText( 3, "\n" );
> > cornerAnnotation->GetTextProperty()->SetColor( 1,0,0);
> >
> > imageViewer->GetRenderer()->AddViewProp( cornerAnnotation );
> >
> > // Callback listens to MouseMoveEvents invoked by the interactor's style
> > vtkSmartPointer callback = vtkSmartPointer::New();
> > callback->SetViewer( imageViewer );
> > callback->SetAnnotation( cornerAnnotation );
> > callback->SetPicker( propPicker );
> > callback->SetOrigin( orgn[0], orgn[1], orgn[2]); // add the origin of the \
> > sequence into the class
> > // Events recognized
> > vtkInteractorStyleImage* imageStyle = imageViewer->GetInteractorStyle();
> > imageStyle->AddObserver( vtkCommand::MouseMoveEvent, callback );
> > imageStyle->AddObserver( vtkCommand::LeftButtonReleaseEvent, callback );
> >
> > renderWindowInteractor->Initialize();
> > renderWindowInteractor->Start();
> >
> >
> > Thanks
> >
> > Mathilde
> >
> >
> > _______________________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at \
> > http://www.kitware.com/opensource/opensource.html
> > Please keep messages on-topic and check the VTK FAQ at: \
> > http://www.vtk.org/Wiki/VTK_FAQ
> > Follow this link to subscribe/unsubscribe:
> > http://www.vtk.org/mailman/listinfo/vtkusers
> >
> > >
> > >
>
>
>
Une messagerie gratuite, garantie à vie et des services en plus, ça vous tente ?
Je crée ma boîte mail www.laposte.net
[Attachment #5 (text/html)]
Thank you for "SetSlice", it is really usefull.<br /><br />When I pick a \
pixel on the vtkImageViewer2, I display the good location in the image and in space. \
<br /><br />However It still remains 2 problems :<br /><br />- The image does not \
change at the beginning if I change the slice_nb.<br /><br />- When I move the \
mouse on the image, I want to change the slice :<br /><br /><em>case \
vtkCommand::MouseMoveEvent:<br \
/> \
style->OnMouseMove();<br \
/> \
<br /> \
// Change slice<br /> \
int slice_nb = Viewer->GetSlice();<br \
/> \
Viewer->SetSlice(slice_nb++);<br /><br \
/> \
cout<<"MOUSE MOVE EVENT :"<<slice_nb++<<endl;<br \
/> \
interactor->Render();<br \
/> \
style->OnMouseMove();<br \
/> \
break; </em> <br /><br />And slice_nb does not change \
even if I enter several times in this code.<br /><br />(excuse my english...)<br \
/><br />Mathilde<br /><br /><blockquote style="padding-left: 5px; margin-left: 5px; \
border-left: 2px solid #ff0000">> Message du 30/06/11 16:19<br />> De : \
"Jothy" <br />> A : "mathilde.merle" <br />> Copie à \
: "vtkusers vtk org" <br />> Objet : Re: [vtkusers] Extract slices from \
a vtkMetaImageReader with vtkExtractVOI<br />><br />> <p \
style="margin:0;padding:0;" dir="ltr">If you use vtkImageViewer2, you shouls use \
setSlice and setorientationTo methods to set the desired orientation adn the slice no \
after setting the setInput/setinputConnection.<br />> <br />> have a look at \
this link<br />> <br />> <a \
href="http://devsample.org/index.php?option=com_content&task=view&id=47&It \
emid=27">http://devsample.org/index.php?option=com_content&task=view&id=47&Itemid=27</a><br \
/>> <br />> Jothy<br />> <br />> <p style="margin:0;padding:0;" \
class="gmail_quote"> On Thu, Jun 30, 2011 at 4:01 PM, mathilde.merle <span><<a \
href="mailto:mathilde.merle@laposte.net">mathilde.merle@laposte.net</a>></span> \
wrote:<br />> <blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid \
#cccccc; padding-left: 1ex"> <br />> I use <em>vtkImageViewer2 :</em><br />> \
<em><br />> // VIEWER TOOL : Pick a Pixel<br />> \
// Picker to pick pixels<br />> \
vtkSmartPointer propPicker = vtkSmartPointer::New();<br />> \
propPicker->PickFromListOn();<br />> <br />> \
// Give the picker a prop to pick<br />> \
vtkSmartPointer imageViewer = vtkSmartPointer::New();<br />> \
vtkImageActor* imageActor = imageViewer->GetImageActor();<br />> \
propPicker->AddPickList(imageActor);<br />> \
<br />> // disable interpolation, so we can \
see each pixel<br />> imageActor->InterpolateOff();</em><br \
/>> <br />> <blockquote style="padding-left: 5px; margin-left: 5px; \
border-left: 2px solid #ff0000"> > Message du 30/06/11 15:54<br />> > De : \
"Jothy" <br />> > A : "mathilde.merle" <br />> > \
Copie à : "vtkusers vtk org" <br />> > Objet : Re: [vtkusers] \
Extract slices from a vtkMetaImageReader with vtkExtractVOI<br />> ><br />> \
> <p style="margin: 0pt; padding: 0pt" dir="ltr"> </p><p \
style="margin:0;padding:0;" class="im">Which image viewer are you using here?<br \
/>> > <br />> > Jothy<br />> > <br />> > </p><p \
style="margin: 0pt; padding: 0pt" class="gmail_quote"> </p><p \
style="margin:0;padding:0;" class="im"> On Thu, Jun 30, 2011 at 3:41 PM, \
mathilde.merle <span><<a href="mailto:mathilde.merle@laposte.net" \
target="_blank">mathilde.merle@laposte.net</a>></span> wrote:<br />> > \
</p><blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid #cccccc; \
padding-left: 1ex"> <p style="margin:0;padding:0;" class="im"><p style="margin: 0pt; \
padding: 0pt" align="left"><br />> > </p><br />> > Hello,<br />> > \
<br />> > I'm trying to extract slices from a vtkImagedata sequence and then \
display it. <br />> > <br />> > I tryed with vtkImageReslice and then \
vtkextractVOI, but it don't work. The image displayed is always the same even if I \
change 'slice_nb'. <br />> > <br />> > How can I do ?<br />> > <br \
/>> > My code :<br />> > </p><em><br />> <p \
style="margin:0;padding:0;" class="im">> int* dims = \
reader->GetOutput()->GetDimensions();<br />> > <br />> > // \
extract slice<br />> > <br />> > <strong>int slice_nb = 0;</strong><br \
/>> > <br />> </p>> <strong>vtkSmartPointer extractVOI = \
vtkSmartPointer::New();<p style="margin:0;padding:0;" class="im"><br />> > \
extractVOI->SetInputConnection(reader->GetOutputPort());<br \
/>> > extractVOI->SetVOI(0,dims[0],0,dims[1], slice_nb, \
slice_nb); //extract first image<br />> > \
extractVOI->Update();</p></strong><p style="margin:0;padding:0;" class="im"><br \
/>> > <br />> > vtkImageData* \
extracted = extractVOI->GetOutput();<br />> > <br />> > \
int* dims2 = extracted->GetDimensions();<br />> > \
cout << "DimensionsExtracted = ";<br />> > \
for (int i=0; i<(int)(sizeof(dims2)/sizeof(int)+1); i++) { <br \
/>> > cout << \
dims2[i]<<", ";<br />> > }<br />> > \
cout << endl; // Get a good image dimension<br />> > \
<br />> > // Visualize<br />> </p>> \
vtkSmartPointer renderWindowInteractor = vtkSmartPointer::New();<p \
style="margin:0;padding:0;" class="im"><br />> > \
imageViewer->SetInputConnection(<strong>extractVOI->GetOutputPort() \
</strong>);<br />> > imageViewer->SetupInteractor( \
renderWindowInteractor );<br />> > imageViewer->SetSize( \
600, 600 );<br />> > <br />> > \
vtkRenderer* renderer = imageViewer->GetRenderer();<br />> > \
renderer->ResetCamera();<br />> > \
renderer->GradientBackgroundOn();<br />> > \
renderer->SetBackground(0,0,0);<br />> > \
renderer->SetBackground2(1,1,1);<br />> > <br />> > \
// Annotate the image with window/level and mouse over pixel \
information<br />> </p>> vtkSmartPointer cornerAnnotation = \
vtkSmartPointer::New();<p style="margin:0;padding:0;" class="im"> <br />> > \
cornerAnnotation->SetLinearFontScaleFactor( 2 );<br />> > \
cornerAnnotation->SetNonlinearFontScaleFactor( 1 );<br />> \
> cornerAnnotation->SetMaximumFontSize( 20 );<br />> > \
cornerAnnotation->SetText( 0, "Off Image" );<br \
/>> </p>> cornerAnnotation->SetText( 3, "\n" \
);<p style="margin:0;padding:0;" class="im"><br />> > \
cornerAnnotation->GetTextProperty()->SetColor( 1,0,0);<br />> > \
<br />> > \
imageViewer->GetRenderer()->AddViewProp( cornerAnnotation );<br />> > \
<br />> > // Callback listens to \
MouseMoveEvents invoked by the interactor's style<br />> </p>> \
vtkSmartPointer callback = vtkSmartPointer::New();<p \
style="margin:0;padding:0;" class="im"><br />> > \
callback->SetViewer( imageViewer );<br />> > \
callback->SetAnnotation( cornerAnnotation );<br />> > \
callback->SetPicker( propPicker );<br />> > \
callback->SetOrigin( orgn[0], orgn[1], orgn[2]); // add the origin of the sequence \
into the class<br />> > <br />> > // Events recognized <br />> \
> vtkInteractorStyleImage* imageStyle = \
imageViewer->GetInteractorStyle();<br />> > \
imageStyle->AddObserver( vtkCommand::MouseMoveEvent, callback );<br />> > \
imageStyle->AddObserver( vtkCommand::LeftButtonReleaseEvent, \
callback );<br />> > <br />> > \
renderWindowInteractor->Initialize();<br />> > \
renderWindowInteractor->Start(); </p></em> <br />> <p \
style="margin:0;padding:0;" class="im">> <br />> > <br />> > Thanks<br \
/>> > <font color="#888888"><br />> > Mathilde<span style="color: \
#808000"></span><br />> > <br />> > <a \
href="https://compte.laposte.net/inscription/index.do?jeux=2011FOOTER_generique" \
target="_blank"><img \
src="http://webmail.laposte.net/webmail/fr_FR/panels/images/pied-page-generique_2.jpg" \
/></a></font><br />> > _______________________________________________<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 \
/>> > </p></blockquote><p>> </p><br />> > <p>> </p> \
</blockquote><br />> <br />> <a \
href="https://compte.laposte.net/inscription/index.do?jeux=2011FOOTER_generique" \
target="_blank"><img \
src="http://webmail.laposte.net/webmail/fr_FR/panels/images/pied-page-generique_2.jpg" \
/></a></blockquote> </p><br />> </p> </blockquote><BR><BR><a target=_blank \
href=https://compte.laposte.net/inscription/index.do?jeux=2011FOOTER_generique><img \
style="margin: 0pt;" \
src="http://webmail.laposte.net/webmail/fr_FR/panels/images/pied-page-generique_2.jpg" \
alt=""><a>
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
Follow this link to subscribe/unsubscribe:
http://www.vtk.org/mailman/listinfo/vtkusers
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic