[Rtk-users] Issues using PhaseGatingImageFilter
Geoff Hugo
gdhugo at vcu.edu
Mon Nov 3 10:15:45 EST 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