[IGSTK-Users] Coordinate system framework for picking events

Patrick Cheng cheng at isis.georgetown.edu
Wed Apr 2 17:40:45 EDT 2008


Hi Vincent,

I am not sure if I understand your question. Could you describe a 
scenario (use case) that leads to the failure or show the insufficiency 
of the coordinate system?

I suggest that we continue this discussion on IGSTK wiki page, which is 
better organized.

http://public.kitware.com/IGSTKWIKI/index.php/Main_Page
This fits under the "Design Discussion" section

Do you want to give it a shot?

Thank you,

Patrick

Vincent Gratsac wrote:
> Hi all,
> 
> I'm sorry to pick out this point again, but something is still not clear 
> to me...
> I well understood the process described by Luis the last time but, in my 
> point of view, a problem is persistant :
> 
> At point (2), How can I get the ImageSpatialObject pixel data coordinate 
> system if the software stores many ImageSpatialObjects (UltraSound, MRI, 
> etc...) ?
> That's why I thought it would be useful to be able to get each 
> coordinate system directly from the ImageSpatialObjectRepresentations 
> which are stored by the View.
> 
> Do you want me to log a bug for this precise point?
> 
> Thank you,
> Vincent
> 
> Luis Ibanez wrote:
>>
>> Hi Vincent,
>>
>> You will need a single ImageSpatialObject, and you will need
>> one ImageObjectRepresentation *for each* View where you want
>> to display the image.
>>
>> About creating bug,
>> please create your account in the MANTIS bug tracker
>> (just need to provide your email)
>>
>>    http://public.kitware.com/Bug/my_view_page.php
>>
>>
>> Then do the following:
>>
>>   * Login in the NANTIS system
>>   * Select the IGSTK project on the upper right menu
>>   * Click on "Report Issue"
>>
>>
>>
>> Please let us know if you run into any difficulty while
>> reporting the bug.
>>
>>
>>    Thanks
>>
>>
>>       Luis
>>
>>
>>
>> ------------------------
>> Vincent Gratsac wrote:
>>> Hi Luis,
>>>
>>> Thank you for your help.
>>>
>>> The solutions you described here seems to be a right way to do.
>>> However, this means that we still have to store the corresponding 
>>> ImageSpatialObject for each ImageObjectRepresentation, isn't it ?
>>>
>>> I don't know where to log it as a bug. Could you tell me how to do ?
>>>
>>> Vincent.
>>>
>>> Luis Ibanez wrote:
>>>
>>>>
>>>>
>>>> Hi Vincent,
>>>>
>>>>
>>>> Thanks for pointing this out.
>>>>
>>>>
>>>> What we are planning to do here is the following:
>>>>
>>>> 1) Views, in response to picking events will throw
>>>>    IGSTK PointEvents, that will contain both a Point
>>>>    and a reference to a coordinate system (the one
>>>>    of the View).
>>>>
>>>> 2) You will be able to request the Transform between
>>>>    the View CoordinateSystem and the ImageSpatialObject
>>>>    pixel data coordinate system.
>>>>
>>>> 3) With the Transform you will get from (2), you will
>>>>    be able to convert the point from the View coordinate
>>>>    system to the ImageSpatialObject pixel data coordinate
>>>>    system
>>>>
>>>> 4) Once you have the point in image space, you will be
>>>>    able to map it to pixel indices and access (read only)
>>>>    pixel data.
>>>>
>>>>
>>>> Pieces (1),(3) and (4) need to be implemented.
>>>> Piece (2) is currently functional
>>>>
>>>>
>>>> Could you please log a bug, for this topic ?
>>>>
>>>> You could describe it as "fixing the coordinate system
>>>> framework for picking events".
>>>>
>>>> ... or something along those lines...
>>>>
>>>>
>>>> BTW: Breaking the encapsulation of the ImageObjectRepresentation
>>>>      is probably not the best way to solve this issue.
>>>>
>>>>
>>>>
>>>>    Thanks
>>>>
>>>>
>>>>       Luis
>>>>
>>>>
>>>>
>>>> ---------------------
>>>> Vincent Gratsac wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> First of all, thanks for the great effort of the IGSTK team to 
>>>>> bring us this new release !
>>>>>
>>>>> I did not receive any answer to my last mail about how to get the 
>>>>> ImageSpatialObject from an ImageObjectRepresentation.
>>>>>
>>>>> Did you understand my problem, and do you think that adding a 
>>>>> RequestGetImageSpatialObject() method to the 
>>>>> ImageObjectRepresentation class would be possible ?
>>>>>
>>>>> Vincent
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> I'm currently working on slicing of displayed objects by giving a 
>>>>>> picked point.
>>>>>> The NeedleBiopsy example is helpful to learn how to do that !
>>>>>> Here is my problem : my software can display some 
>>>>>> ObjectRepresentations for more than one SpatialObjects, but I'm 
>>>>>> not able to know to which ImageSpatialObject an 
>>>>>> ImageSpatialObjectRepresentation is related.
>>>>>>
>>>>>> This is a problem when we try to convert a physical point to image 
>>>>>> indexes ( that's why I submitted the idea to add a 
>>>>>> ResliceToPhysicalPoint method in the 
>>>>>> ImageSpatialObjectRepresentation class).
>>>>>>
>>>>>> This is also a problem if the transformation between one of the 
>>>>>> ImageSpatialObjects and the View object differs from Identity. In 
>>>>>> this case, I need to get this transformation and multiply its 
>>>>>> inverse to the picked point's coordinates, in order to express the 
>>>>>> picked point's coordinates in the ImageSpatialObject coordinate 
>>>>>> system. Next, I will have to convert the physical point to image 
>>>>>> index.
>>>>>>
>>>>>> To conclude, I found some cases in which getting the 
>>>>>> ImageSpatialObject from an ImageSpatialObjectRepresentation is 
>>>>>> very useful. Is there a way to do it , or would it be unsafe to 
>>>>>> add such a method ?
>>>>>>
>>>>>> Vincent
>>>>>
>>>>>
>>>>>
>>>
> 



More information about the IGSTK-Users mailing list