[Rtk-users] 3D mesh points projection onto the DRR image plane

Simon Rit simon.rit at creatis.insa-lyon.fr
Fri Oct 13 08:49:31 CEST 2023


Hi,
Sorry for the delay. As far as I can see, you are changing the coordinate
system of the CT lines 28-32. This transformation should also be applied to
your mesh before projection. If I'm not mistaking, that means swapping the
second and the third coordinates of the mesh points and applying a shift of
-2*CT.GetOrigin()[1] to the (new) third coordinate. If it does not work, I
can try to help if you provide the input data. But I'm sure you'll figure
it out!
Simon

On Sun, Oct 1, 2023 at 12:30 PM Suranga W <isurusuranga.wijesinghe at gmail.com>
wrote:

> Hi Simon,
>
> I attempted to implement point projection based on the information you
> mentioned above. However, the points projected onto the DRR do not appear
> to be accurate. Could you kindly assist me in identifying if I missed any
> steps or how I should incorporate parameters such as origin, pixel spacing,
> and size (which I used when implementing point projection in ITK - code is
> attached above) to ensure correct point projection? For your reference, I
> have attached a DRR image along with the projected point cloud.
>
> Thanks,
> Surang
>
> On Thu, Sep 28, 2023 at 8:50 AM Simon Rit <simon.rit at creatis.insa-lyon.fr>
> wrote:
>
>> Hi,
>> The easiest is to use the projection matrices from the geometry object
>> with GetMatrix
>> <http://www.openrtk.org/Doxygen/classrtk_1_1ProjectionGeometry.html#ac848531d266395624ee8f1f328ae67d3>
>> which takes the projection number as a paramter or GetMatrices
>> <http://www.openrtk.org/Doxygen/classrtk_1_1ProjectionGeometry.html#aa00734aa99a710a163a0eb30334cbac7>
>> to get the full list. You can then multiply your 3D homogeneous coordinate
>> in image space (x,y,z,1) by multiplying it with the matrix to get the
>> homogenous projection coordinates (u,v,w) (so you get the actual 2D
>> coordinates (u/w, v/w)).
>> Simon
>>
>> On Mon, Sep 25, 2023 at 8:29 AM Suranga W <
>> isurusuranga.wijesinghe at gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I have segmented the liver from a 3D-CT volume and created a volumetric
>>> mesh. I have successfully generated DRRs by using RTK tool kit. The code is
>>> attached below. Now what I want is that I need to project each and every 3D
>>> coordinates of the volumetric mesh on this DRR image plane. This means that
>>>  finding the corresponding 2D projection coordinate (i.e. x, y positions)
>>> of each vertex coordinate on the DRR image projection plane.
>>>
>>> How can I obtain the (x, y) coordinate values in the DRR image plane for
>>> a given 3D coordinate position? For example, I have (x,y,z) positions for
>>> each vertex and I want to convert into (x,y) i.e. 2D projection coordinates
>>> on the DRR image plane? Can you please elaborate with an example ?
>>>
>>> I have python code to project the 3D-mesh coordinates  on DRR images
>>> based on ITK SiddonJacobsRayTracing algorithm. However, I want to implement
>>> this code similar to the RTK based DRR projections. I have attached this
>>> ITK based DRR generation code and the point projection code which is
>>> compatible to this ITK-based DRR code for your further reference.
>>> Moreover, I have attached sample DRR image with projected points overlaid
>>> on it that is based on ITK-based code.
>>>
>>> *Additional note:* The reason because I have chosen RTK since it is
>>> more convenient than ITK based ray-tracing algorithm when generating DRRs
>>> so that I’m able to generate DRRs to match the exact field of view of real
>>> kV planar x-ray images.
>>>
>>>
>>> Thanks,
>>>
>>> Surang
>>> _______________________________________________
>>> Rtk-users mailing list
>>> rtk-users at openrtk.org
>>> https://www.creatis.insa-lyon.fr/mailman/listinfo/rtk-users
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.creatis.insa-lyon.fr/pipermail/rtk-users/attachments/20231013/92efe1ba/attachment.htm>


More information about the Rtk-users mailing list