Closed BigPandaCPU closed 2 months ago
Hi Vivek,
Thanks for sharing the code for your awesome work ! I'm confused by the caclutation of DeepFluoro isocenter pose. The source cobe below: deepfluoro.py line48 # Get the isocenter pose (AP viewing angle at volume isocenter) isocenter_rot = torch.tensor([[torch.pi / 2, 0.0, -torch.pi / 2]]) isocenter_xyz = torch.tensor(self.volume.shape) * self.spacing / 2 isocenter_xyz = isocenter_xyz.unsqueeze(0) self.isocenter_pose = RigidTransform( isocenter_rot, isocenter_xyz, "euler_angles", "ZYX" )
How to understand the isocenter_rot = torch.tensor([[torch.pi / 2, 0.0, -torch.pi / 2]])???
From your code,the initial DRR's source is (sdd/2, 0, 0), target is (-sdd/2, 0, 0), to the AP view, we only need to rotate around the Z axis, why there rotate around Z and X?
I understand it, the rotation order is first rotate around X axis, then rotate around Z axis. Rotate around X axis in order to get the DRR image in nomral order, If don't rotate around X axis, the DRR image is like below.
Hi Vivek,
Thanks for sharing the code for your awesome work ! I'm confused by the caclutation of DeepFluoro isocenter pose. The source cobe below: deepfluoro.py line48
Get the isocenter pose (AP viewing angle at volume isocenter)
How to understand the isocenter_rot = torch.tensor([[torch.pi / 2, 0.0, -torch.pi / 2]])???
From your code,the initial DRR's source is (sdd/2, 0, 0), target is (-sdd/2, 0, 0), to the AP view, we only need to rotate around the Z axis, why there rotate around Z and X?