[Rtk-users] Issues using PhaseGatingImageFilter

Geoff Hugo gdhugo at vcu.edu
Mon Nov 3 16:15:45 CET 2014


Hi Simon,

Yes, this was what I was thinking as well.  Thanks for implementing it, it worked fine.  

Geoff

------------------------------------
Geoffrey D. Hugo, Ph.D.
Associate Professor, Radiation Oncology
Director, Medical Physics Graduate Program
Virginia Commonwealth University
(804) 628 3457


On Nov 1, 2014, at 7:22 AM, Simon Rit <simon.rit at creatis.insa-lyon.fr> wrote:

> Hi Geoff,
> I agree with your analysis, PhaseGatingImageFilter is not adequate for
> streaming, which is not surprising since Cyril uses it for iterative
> reconstruction and he typically works with the full stack of
> projections in RAM. I think there is a simple solution: move the
> update of the geometry from the GenerateData to the
> GenerateOutputInformation. That should solve the issue for you.
> Enclosed is a change suggestion, can you give it a try in the
> application you have built?
> I'll commit it if it helps,
> Simon
> 
> On Fri, Oct 31, 2014 at 9:29 PM, Geoff Hugo <gdhugo at vcu.edu> wrote:
>> I’m trying to use the PhaseGatingImageFilter class to reconstruct a single
>> breathing phase volume and am running into some problems.  I’ve incorporated
>> this class into an application similar to rtkfdk, putting it in the pipeline
>> between ParkerShortScanImageFilter and FDKConeBeamReconstructionFilter.  If
>> I run the application trying to select a subset of projections using the
>> method SetGatingWindowCenter, I get a segmentation fault.  The fault is
>> occurring due to allocation errors in
>> rtk::BackProjectionImageFilter::GenerateInputRequestedRegion.  It appears
>> that since the geometry specific to the selected projections is selected in
>> PhaseGatingImageFilter::GenerateData, there is a disconnect between the
>> geometry size and projection stack size during GenerateInputRequestedRegion
>> in the pipeline (pipeline OutputInformation shows the projection stack size
>> is equal to the size of the selected breathing phase projections, but the
>> geometry size is still the total number of (unsorted) projections).
>> 
>> I can workaround this problem by calling PhaseGatingImageFilter->Update(),
>> but I think this will break the streaming functionality?  Any easy solutions
>> to this problem that will preserve streaming and let me run the full
>> pipeline with only one Update call?  My guess is I will need to move the
>> geometry subselection to PhaseGatingImageFilter::GenerateOutputInformation()
>> then call UpdateOutputInformation in the main application?
>> 
>> Thanks,
>> Geoff
>> 
>> ------------------------------------
>> Geoffrey D. Hugo, Ph.D.
>> Associate Professor, Radiation Oncology
>> Director, Medical Physics Graduate Program
>> Virginia Commonwealth University
>> (804) 628 3457
>> 
>> 
>> 
>> _______________________________________________
>> Rtk-users mailing list
>> Rtk-users at public.kitware.com
>> http://public.kitware.com/mailman/listinfo/rtk-users
>> 
> <rtkPhaseGatingImageFilter.txx>





More information about the Rtk-users mailing list