[vtkusers] pixel data at world position

Mark Wyszomierski markww at gmail.com
Wed Oct 5 15:41:10 EDT 2005


Please also be aware - depending on if your original image is a VTK image vs
an ITK image - the
points mapped through this method are in 'cartesian coordinates' - so if
you're referencing an
ITK image who has 'image' coordinates (i think they do anyways), you'll have
to flip the y axis
to reference the correct original pixel.
 Mark
 On 10/5/05, Mark Wyszomierski <markww at gmail.com> wrote:
>
> Hi Isabelle,
>  So my observer is a class, who has a member to my 'view' class, as well
> as some storage for
> the mapped point. Pseudo code looks like:
>
> class vtkObserverLeftMouseDown : public vtkCommand {
> public:
> CMyView *m_pView;
> double ptMapped[3];
> };
> Now to fill in some of the blanks, the actual function looks like:
>  void vtkObserverLeftMouseDown ::Execute(vtkObject *caller, unsigned long,
> void*)
> {
>  m_pView->Picker->Pick(m_pView->Interactor->GetEventPosition()[0],
> m_pView->Interactor->GetEventPosition()[1],
> 0,
> m_pView->Renderer);
>  m_pView->Picker->GetMapperPosition(ptMapped);
> }
>  Once ptMapped is filled in for you, you can do the equation where you
> divide by the
> pixel spacing etc. The (int)(+ 0.5) is just a shortcut for rounding - it
> is to make the
> final determination about what pixel you're over. It is not related to my
> origin. You'll
> have to come up with a way to get your picker to the observer. Using a
> pointer to
> my view class worked for me.
>   Mark
>    On 10/5/05, Renaud Isabelle <renauisa at yahoo.fr> wrote:
> >
> > Hi Mark,
> >  Thanks for replying.
> >  I have already computed my world position by firing a picker from pixel
> > coordinates. Sorry but I don't see or know what the mapper coordinates are.
> > What is the difference and how this could help me to retrieve the index in
> > my itkImage's buffer corresponding to my world position?
> >  BTW, what is your '+ 0.5'? I suppose this is the origin in x of your
> > image, right?
> >  Isabelle
> >
> > *Mark Wyszomierski <markww at gmail.com>* a écrit :
> >
> > You can fire a pick event when the user clicks the mouse:
> >   Picker->Pick(eventpos[0], eventpos[1], 0, renderer);
> >  Then you can get the mapped position:
> >   Picker->GetMapperPosition(...);
> >  Then the final x,y locs of the original image I get by:
> >   originalX = (int)(ptMapped[0] / pixel_spacing_x + 0.5);
> >  // same for y.
> >  This always has given me the correct 'real' location.
> >  Mark
> >
> >  On 10/5/05, Renaud Isabelle <renauisa at yahoo.fr > wrote:
> > >
> > > Hi all,
> > >  I have read an initial 3D image from a file with itkImageFileReader
> > > and displayed with VTK through vtkImageData/vtkImageActor.
> > >  Now, since a known world position in 3D x,y,z, I would like to
> > > retrieve the pixel value at this point of my image.
> > >  This seems to be a complex problem, because I don't want the pixel
> > > data that is displayed at this position but the pixel data of the raw image,
> > > that is no rescaled instead.
> > >  Is there some example where such a thing is done? Or any function?
> > >  Thanks,
> > >  Isabelle
> > >
> > > ------------------------------
> > > *Appel audio GRATUIT partout dans le monde* avec le nouveau Yahoo!
> > > Messenger
> > > Téléchargez le ici !<http://us.rd.yahoo.com/messenger/mail_taglines/default/*http://fr.messenger.yahoo.com>
> > >
> > >
> > > _______________________________________________
> > > This is the private VTK discussion list.
> > > Please keep messages on-topic. Check the FAQ at:
> > > http://www.vtk.org/Wiki/VTK_FAQ
> > > Follow this link to subscribe/unsubscribe:
> > > http://www.vtk.org/mailman/listinfo/vtkusers
> > >
> > >
> > >
> >  ------------------------------
> > *Appel audio GRATUIT partout dans le monde* avec le nouveau Yahoo!
> > Messenger
> > Téléchargez le ici !<http://us.rd.yahoo.com/messenger/mail_taglines/default/*http://fr.messenger.yahoo.com>
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20051005/3164e27a/attachment.htm>


More information about the vtkusers mailing list