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.wijesin...@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....@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.wijesin...@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-us...@openrtk.org >>> https://www.creatis.insa-lyon.fr/mailman/listinfo/rtk-users >>> >>
_______________________________________________ Rtk-users mailing list rtk-us...@openrtk.org https://www.creatis.insa-lyon.fr/mailman/listinfo/rtk-users