[vtkusers] getting pointids from an imagedata

John Biddiscombe jbiddiscombe at skippingmouse.co.uk
Tue Jul 10 05:04:22 EDT 2001


Matt

I'm not sure I'm able to help you really. There are so many details of how 
you are displaying your image data (renderwindow or imagewindow - 
drawpixels or imageactor) if you're using an imagewindow then I never touch 
them so can't help, they may not implement the worldpoint-displaypoint 
features in the same way as the renderwindow. Check also that the slice 
number you're using is being set into your SetDisplayPoint(x,y,lastY) call. 
I generally do something like this

MouseClick->
   Get X,Y coords
Compute pixel location from origin+offsetx/y and scaling
   pointID follows,
but as I mentioned in an earlier post last week I think, I don't use an 
imagewindow and have implemented all the image display code myself from 
scratch - this means I know exactly where pixel 0,0 is etc etc and there 
are no problems. I'm afraid you're going to have to use a lot of trial and 
error but if you do have a dataset and want to see if the pixel you've got 
is correct, the easiest way is probably
imagedata->GetPointData()->GetScalars()->SetScalar(mydubiousPointID,255)
or something along those lines. Then it should change colour and you can at 
least test it - n'est pas?

JB

At 14:59 09/07/2001, Matthias Zangl wrote:
>Hello John,
>
>I tried out your suggestion and I am not clear, if everything is working
>properly:
>
>float worldPoint[4];
>
>  this->GetRenderer()->SetDisplayPoint(x,y,lastY);
>  this->GetRenderer()->DisplayToWorld();
>  this->GetRenderer()->GetWorldPoint(worldPoint);
>
>  int pointId = data->FindPoint(worldPoint[0],worldPoint[1],worldPoint[2]);
>
>  float coord[3];
>  data->GetPoint(pointId,coord);
>
>The function FidnPoint seems to return a valid pointId (although the
>worldPoint-coords are not very familiar for me (0.001....)). But at least I
>am getting a pointId. For checking if its valid I tried to get the coords
>from the point id (with getpoint). But the coords stored in the coord-array
>are always 0,5 or -0,5 for all axes.. There should definitly be a way for
>transforming them to useful coordinates,right?
>
>Is there another way for doing something with my point for ensuring that I
>got the right one?
>
>thx,
>Matt
>----- Original Message -----
>From: "John Biddiscombe" <jbiddiscombe at skippingmouse.co.uk>
>To: "Matthias Zangl" <zangl at ism-austria.at>; <vtkusers at public.kitware.com>
>Sent: Saturday, July 07, 2001 12:25 PM
>Subject: Re: [vtkusers] getting pointids from an imagedata
>
>
> > Sorry, I misread your request. You'll need to get the window->World
> > coordinate conversion from
> > vtkViewPort::DisplayToWorld
> > and then use findpoint...
> >
> >
> > At 15:29 06/07/2001, John Biddiscombe wrote:
> > >vtkDataSet::
> > >int FindPoint (float x, float y, float z)
> > >int FindPoint (float x[3])
> > >
> > >all subclasses (ImageData) implement it and given a 3space coordinate,
>you
> > >can find the point ID of the one you want.
> > >
> > >JB
> > >
> > >
> > >At 14:16 05/07/2001, Matthias Zangl wrote:
> > >>Hello!
> > >>
> > >>I am displaying a volume (vtkImageData) - slice by slice on my screen. I
> > >>realized it by changing the outputorigin on slicing. Well, that works
>well
> > >>so far. Now I want to get the pointid from a point the user is selecting
>on
> > >>the screen. All I got are the coordinates in the renderwindow. I suppose
> > >>I've to take care that they 're calculated dependend on the resolution
>and
> > >>current zoomfactor of my image. Maybe someone have some hints for me.
> > >>
> > >>greatly appreciated,
> > >>
> > >>bye,
> > >>Matt
> > >>
> > >>
> > >>_______________________________________________
> > >>This is the private VTK discussion list.
> > >>Please keep messages on-topic. Check the FAQ at:
> > >><http://public.kitware.com/cgi-bin/vtkfaq>
> > >>Follow this link to subscribe/unsubscribe:
> > >>http://public.kitware.com/mailman/listinfo/vtkusers
> > >
> > >
> > >_______________________________________________
> > >This is the private VTK discussion list. Please keep messages on-topic.
> > >Check the FAQ at: <http://public.kitware.com/cgi-bin/vtkfaq>
> > >Follow this link to subscribe/unsubscribe:
> > >http://public.kitware.com/mailman/listinfo/vtkusers
> >
>
>
>
>_______________________________________________
>This is the private VTK discussion list.
>Please keep messages on-topic. Check the FAQ at: 
><http://public.kitware.com/cgi-bin/vtkfaq>
>Follow this link to subscribe/unsubscribe:
>http://public.kitware.com/mailman/listinfo/vtkusers





More information about the vtkusers mailing list