[Rtk-users] 4D Phase-correlated Reconstruction

Zhang, Zhehao zhehao.zhang at wustl.edu
Thu May 14 17:58:22 EDT 2020


Hi,
Sorry for my fault, I think I have made that link public this time. The results are also uploaded.

The attachment  is my phase-correlated reconstruction result (the first phase of total five phases). Thank you.

BTW, if I need to utilize more projections for each phase, is there some integrated method in RTK to do so? Or you mean that I need to handle it by myself?



Best regards,

Zhehao

From: Simon Rit<mailto:simon.rit at creatis.insa-lyon.fr>
Sent: Thursday, May 14, 2020 2:17 AM
To: Zhang, Zhehao<mailto:zhehao.zhang at wustl.edu>
Cc: rtk-users at public.kitware.com<mailto:rtk-users at public.kitware.com>
Subject: Re: [Rtk-users] 4D Phase-correlated Reconstruction



Hi,

Yes, you understood correctly. Adding projections will not fix the problem of angular gaps but will add some motion blur. This is, in my experience, the best way to proceed but you're free to do otherwise.

I can't access your link, it seems to be protected. Can you provide just one snapshot of your result?

Simon



On Thu, May 14, 2020 at 8:13 AM Zhang, Zhehao <zhehao.zhang at wustl.edu<mailto:zhehao.zhang at wustl.edu>> wrote:

Hi,



First, thank you for your reply. I am following the rtkfourdfdk to do the phase-correlated recon now. However, the result is not desirable and I am wondering whether the bad results result from too few projections for each phase.

If I understand the rtk::SelectOneProjectionPerCycleImageFilter correctly, it only select one projection from per respiratory cycle for each phase. So if 20 projections were acquired per respiratory cycle and I want to reconstruct 10 phases, only half projections will be used, right? I don’t know why we abandon some projections and is there some way I can use all the data? That’s to say, select 2 projections for each one of total 10 phases per respiratory cycle.

I also put my Python code and used data here( https://drive.google.com/drive/folders/1SFXr4ehI1N8Wh0BAMlRqIah9cXwukRYJ ).



Thank you again.

Zhehao





From: Simon Rit<mailto:simon.rit at creatis.insa-lyon.fr>
Sent: Wednesday, May 13, 2020 3:59 AM
To: Zhang, Zhehao<mailto:zhehao.zhang at wustl.edu>
Cc: rtk-users at public.kitware.com<mailto:rtk-users at public.kitware.com>
Subject: Re: [Rtk-users] 4D Phase-correlated Reconstruction



Hi,

I think you should look at rtkfourdfdk<https://github.com/SimonRit/RTK/blob/master/applications/rtkfourdfdk/rtkfourdfdk.cxx> which does what you want. rtk::SelectOneProjectionPerCycleImageFilter will select the projections for you. Can you try to reimplement this in Python? We'll help if you're stuck but this is the right file to use as a basis for your dev.

Simon



On Wed, May 13, 2020 at 8:07 AM Zhang, Zhehao <zhehao.zhang at wustl.edu<mailto:zhehao.zhang at wustl.edu>> wrote:



Dear all,



I am trying to do the 4D phase-correlated CBCT reconstruction under Python environment. What I have are the projection data(.mha), geometry info(.xml) and the repiratory info(.txt). You can check the attachment for the phase file. I want just to simply ‘divide’ the projections and geometry into different bins according to the phase information and perform FDK recon separately, to get several different 3D images with streaks artifacts of course. The Rooster is not necessary for me.



I have spent lot of time on the given ‘4DROOSTERReconstruction’ example. I think it used the ReorderProjectionsImageFilter order to do the separation. However, I am stuck on how to perform it for Python since I didn’t figure out how to read the phase.txt. Could you please give me some hints and is it correct to call this order to achieve my goals?



Additionally, I also saw another test example(https://github.com/SimonRit/RTK/blob/master/test/rtkwarpprojectionstacktofourdtest.cxx) which seems using ‘PhasesToInterpolationWeights’ ,  ‘BackProjectionImageFilter’ and ‘DivideImageFilter ‘ to do this. I am confused I should follow which way. And I also want to make sure why here using BackProjectionImageFilter rather than FDKConeBeamReconstructionFilter.



Sorry for these cumbersome questions. Really hope to get some help, which means a lot for me. Thank you very much.



Sincerely,

Zhehao



_______________________________________________
Rtk-users mailing list
Rtk-users at public.kitware.com<mailto:Rtk-users at public.kitware.com>
https://public.kitware.com/mailman/listinfo/rtk-users




From: Zhang, Zhehao<mailto:zhehao.zhang at wustl.edu>
Sent: Thursday, May 14, 2020 2:38 AM
To: Simon Rit<mailto:simon.rit at creatis.insa-lyon.fr>
Cc: rtk-users at public.kitware.com<mailto:rtk-users at public.kitware.com>
Subject: RE: [Rtk-users] 4D Phase-correlated Reconstruction

Sorry for my fault, I think I have made that link public this time. The results are also there.
I attached two results, the better one is conventional FDK where also projections are used (no separate phase) and another one is phase-correlated recon (the shown is the first of five phases).
BTW, if I need to utilize more projections for each phase, is there some integrated method in RTK to do so? Or you mean that I need to handle it by myself?

Best regards,
Zhehao
From: Simon Rit<mailto:simon.rit at creatis.insa-lyon.fr>
Sent: Thursday, May 14, 2020 2:17 AM
To: Zhang, Zhehao<mailto:zhehao.zhang at wustl.edu>
Cc: rtk-users at public.kitware.com<mailto:rtk-users at public.kitware.com>
Subject: Re: [Rtk-users] 4D Phase-correlated Reconstruction

Hi,
Yes, you understood correctly. Adding projections will not fix the problem of angular gaps but will add some motion blur. This is, in my experience, the best way to proceed but you're free to do otherwise.
I can't access your link, it seems to be protected. Can you provide just one snapshot of your result?
Simon

On Thu, May 14, 2020 at 8:13 AM Zhang, Zhehao <zhehao.zhang at wustl.edu<mailto:zhehao.zhang at wustl.edu>> wrote:
Hi,

First, thank you for your reply. I am following the rtkfourdfdk to do the phase-correlated recon now. However, the result is not desirable and I am wondering whether the bad results result from too few projections for each phase.
If I understand the rtk::SelectOneProjectionPerCycleImageFilter correctly, it only select one projection from per respiratory cycle for each phase. So if 20 projections were acquired per respiratory cycle and I want to reconstruct 10 phases, only half projections will be used, right? I don’t know why we abandon some projections and is there some way I can use all the data? That’s to say, select 2 projections for each one of total 10 phases per respiratory cycle.
I also put my Python code and used data here( https://drive.google.com/drive/folders/1SFXr4ehI1N8Wh0BAMlRqIah9cXwukRYJ ).

Thank you again.
Zhehao


From: Simon Rit<mailto:simon.rit at creatis.insa-lyon.fr>
Sent: Wednesday, May 13, 2020 3:59 AM
To: Zhang, Zhehao<mailto:zhehao.zhang at wustl.edu>
Cc: rtk-users at public.kitware.com<mailto:rtk-users at public.kitware.com>
Subject: Re: [Rtk-users] 4D Phase-correlated Reconstruction

Hi,
I think you should look at rtkfourdfdk<https://github.com/SimonRit/RTK/blob/master/applications/rtkfourdfdk/rtkfourdfdk.cxx> which does what you want. rtk::SelectOneProjectionPerCycleImageFilter will select the projections for you. Can you try to reimplement this in Python? We'll help if you're stuck but this is the right file to use as a basis for your dev.
Simon

On Wed, May 13, 2020 at 8:07 AM Zhang, Zhehao <zhehao.zhang at wustl.edu<mailto:zhehao.zhang at wustl.edu>> wrote:

Dear all,

I am trying to do the 4D phase-correlated CBCT reconstruction under Python environment. What I have are the projection data(.mha), geometry info(.xml) and the repiratory info(.txt). You can check the attachment for the phase file. I want just to simply ‘divide’ the projections and geometry into different bins according to the phase information and perform FDK recon separately, to get several different 3D images with streaks artifacts of course. The Rooster is not necessary for me.

I have spent lot of time on the given ‘4DROOSTERReconstruction’ example. I think it used the ReorderProjectionsImageFilter order to do the separation. However, I am stuck on how to perform it for Python since I didn’t figure out how to read the phase.txt. Could you please give me some hints and is it correct to call this order to achieve my goals?

Additionally, I also saw another test example(https://github.com/SimonRit/RTK/blob/master/test/rtkwarpprojectionstacktofourdtest.cxx) which seems using ‘PhasesToInterpolationWeights’ ,  ‘BackProjectionImageFilter’ and ‘DivideImageFilter ‘ to do this. I am confused I should follow which way. And I also want to make sure why here using BackProjectionImageFilter rather than FDKConeBeamReconstructionFilter.

Sorry for these cumbersome questions. Really hope to get some help, which means a lot for me. Thank you very much.

Sincerely,
Zhehao

_______________________________________________
Rtk-users mailing list
Rtk-users at public.kitware.com<mailto:Rtk-users at public.kitware.com>
https://public.kitware.com/mailman/listinfo/rtk-users



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://public.kitware.com/pipermail/rtk-users/attachments/20200514/08571a7e/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 4DFDK.png
Type: image/png
Size: 175502 bytes
Desc: 4DFDK.png
URL: <https://public.kitware.com/pipermail/rtk-users/attachments/20200514/08571a7e/attachment-0001.png>


More information about the Rtk-users mailing list