[vtkusers] pixel data at world position

Mark Wyszomierski markww at gmail.com
Wed Oct 5 15:39:27 EDT 2005


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/c0550099/attachment.htm>


More information about the vtkusers mailing list