[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