Hi Simon,

Yes, I think maybe the problem is because my data itself is not desirable. I 
utilized another dataset and the results get much better.
Additionally, the SubSelectImageFilter works well. Thank you again, really 
appreciate it.

Best,
Zhehao

From: Simon Rit<mailto:simon....@creatis.insa-lyon.fr>
Sent: Sunday, May 17, 2020 9:38 AM
To: Zhang, Zhehao<mailto:zhehao.zh...@wustl.edu>
Cc: rtk-users@public.kitware.com<mailto:rtk-users@public.kitware.com>
Subject: Re: [Rtk-users] 4D Phase-correlated Reconstruction

Hi,
That's more or less what I would expect from 17 projections but your gray 
window is not well adjusted. The white streaks on the border are probably 
because your projections are badly calibrated and air is not at 0 as it should 
be.
rtk::SubSelectImageFilter is not meant to be instantiated, the New you are 
using is inherited from the parent. Try using rtk::SubSelectFromListImage.
Best regards,
Simon


On Fri, May 15, 2020 at 8:16 PM Zhang, Zhehao 
<zhehao.zh...@wustl.edu<mailto:zhehao.zh...@wustl.edu>> wrote:
Hi,

Thank you for reply. I tried to remove the Parker weights, however, it didn’t 
really help. As you can see from the attached result, there is still almost no 
contrast.
Since I don’t what else I can do along this way, I am thinking using more 
projections for each phase (of course some motion blur may appear). My 
preliminary idea is to use ‘ReorderProjectionsImageFilter’ to reorder the 
projections and geometry, then sub-select corresponding projections for every 
phase. Is there some Python RTK implements can do this selection? I have tried 
‘SubSelectImageFilter’ like

selector = rtk.SubSelectImageFilter[ImageType].New()
selector.SetInputProjectionStack(reorder.GetOutput())
selector.SetInputGeometry(reorder.GetOutputGeometry())

and got Error 'itkObject' object has no attribute 'SetInputProjectionStack'. I 
think the 
SubSelectImageFilter<http://www.openrtk.org/Doxygen/classrtk_1_1SubSelectImageFilter.html>
 should have these set methods but I don’t know why I cannot use them on Python.
Sorry for these troubles. Hope to get your help.

Best,
Zhehao

From: Simon Rit<mailto:simon....@creatis.insa-lyon.fr>
Sent: Friday, May 15, 2020 4:21 AM
To: Zhang, Zhehao<mailto:zhehao.zh...@wustl.edu>
Cc: rtk-users@public.kitware.com<mailto:rtk-users@public.kitware.com>
Subject: Re: [Rtk-users] 4D Phase-correlated Reconstruction

Hi,
Congratulations on this code translation. Only 17 cycles according to your 
phase.txt file is very few. But there seems to be something else going one. I 
would suggest to remove the parker weights because RTK might detect a short 
scan since you have large gaps between projections in the same cycle. Or set 
the angular 
threshold<http://www.openrtk.org/Doxygen/classrtk_1_1ParkerShortScanImageFilter.html#a7f0bc650a54b022cb47523841749d741>
 to a larger value to be sure that it does not apply any such weight, the 
default is pi/9 and not large enough in your case.
Simon

On Thu, May 14, 2020 at 11:58 PM Zhang, Zhehao 
<zhehao.zh...@wustl.edu<mailto:zhehao.zh...@wustl.edu>> wrote:
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....@creatis.insa-lyon.fr>
Sent: Thursday, May 14, 2020 2:17 AM
To: Zhang, Zhehao<mailto:zhehao.zh...@wustl.edu>
Cc: rtk-users@public.kitware.com<mailto:rtk-users@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.zh...@wustl.edu<mailto:zhehao.zh...@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....@creatis.insa-lyon.fr>
Sent: Wednesday, May 13, 2020 3:59 AM
To: Zhang, Zhehao<mailto:zhehao.zh...@wustl.edu>
Cc: rtk-users@public.kitware.com<mailto:rtk-users@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.zh...@wustl.edu<mailto:zhehao.zh...@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@public.kitware.com<mailto:Rtk-users@public.kitware.com>
https://public.kitware.com/mailman/listinfo/rtk-users




From: Zhang, Zhehao<mailto:zhehao.zh...@wustl.edu>
Sent: Thursday, May 14, 2020 2:38 AM
To: Simon Rit<mailto:simon....@creatis.insa-lyon.fr>
Cc: rtk-users@public.kitware.com<mailto:rtk-users@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....@creatis.insa-lyon.fr>
Sent: Thursday, May 14, 2020 2:17 AM
To: Zhang, Zhehao<mailto:zhehao.zh...@wustl.edu>
Cc: rtk-users@public.kitware.com<mailto:rtk-users@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.zh...@wustl.edu<mailto:zhehao.zh...@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....@creatis.insa-lyon.fr>
Sent: Wednesday, May 13, 2020 3:59 AM
To: Zhang, Zhehao<mailto:zhehao.zh...@wustl.edu>
Cc: rtk-users@public.kitware.com<mailto:rtk-users@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.zh...@wustl.edu<mailto:zhehao.zh...@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@public.kitware.com<mailto:Rtk-users@public.kitware.com>
https://public.kitware.com/mailman/listinfo/rtk-users





_______________________________________________
Rtk-users mailing list
Rtk-users@public.kitware.com
https://public.kitware.com/mailman/listinfo/rtk-users

Reply via email to