<div dir="ltr">Great, it's been <a href="https://github.com/SimonRit/RTK/commit/6558907432ee46c1be15ac64288c613bdfd0df3f">pushed</a>.<br>Simon<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 3, 2014 at 4:15 PM, Geoff Hugo <span dir="ltr"><<a href="mailto:gdhugo@vcu.edu" target="_blank">gdhugo@vcu.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Simon,<br>
<br>
Yes, this was what I was thinking as well.  Thanks for implementing it, it worked fine.<br>
<span class=""><br>
Geoff<br>
<br>
------------------------------------<br>
Geoffrey D. Hugo, Ph.D.<br>
Associate Professor, Radiation Oncology<br>
Director, Medical Physics Graduate Program<br>
Virginia Commonwealth University<br>
<a href="tel:%28804%29%20628%203457" value="+18046283457">(804) 628 3457</a><br>
<br>
<br>
</span><div><div class="h5">On Nov 1, 2014, at 7:22 AM, Simon Rit <<a href="mailto:simon.rit@creatis.insa-lyon.fr">simon.rit@creatis.insa-lyon.fr</a>> wrote:<br>
<br>
> Hi Geoff,<br>
> I agree with your analysis, PhaseGatingImageFilter is not adequate for<br>
> streaming, which is not surprising since Cyril uses it for iterative<br>
> reconstruction and he typically works with the full stack of<br>
> projections in RAM. I think there is a simple solution: move the<br>
> update of the geometry from the GenerateData to the<br>
> GenerateOutputInformation. That should solve the issue for you.<br>
> Enclosed is a change suggestion, can you give it a try in the<br>
> application you have built?<br>
> I'll commit it if it helps,<br>
> Simon<br>
><br>
> On Fri, Oct 31, 2014 at 9:29 PM, Geoff Hugo <<a href="mailto:gdhugo@vcu.edu">gdhugo@vcu.edu</a>> wrote:<br>
>> I’m trying to use the PhaseGatingImageFilter class to reconstruct a single<br>
>> breathing phase volume and am running into some problems.  I’ve incorporated<br>
>> this class into an application similar to rtkfdk, putting it in the pipeline<br>
>> between ParkerShortScanImageFilter and FDKConeBeamReconstructionFilter.  If<br>
>> I run the application trying to select a subset of projections using the<br>
>> method SetGatingWindowCenter, I get a segmentation fault.  The fault is<br>
>> occurring due to allocation errors in<br>
>> rtk::BackProjectionImageFilter::GenerateInputRequestedRegion.  It appears<br>
>> that since the geometry specific to the selected projections is selected in<br>
>> PhaseGatingImageFilter::GenerateData, there is a disconnect between the<br>
>> geometry size and projection stack size during GenerateInputRequestedRegion<br>
>> in the pipeline (pipeline OutputInformation shows the projection stack size<br>
>> is equal to the size of the selected breathing phase projections, but the<br>
>> geometry size is still the total number of (unsorted) projections).<br>
>><br>
>> I can workaround this problem by calling PhaseGatingImageFilter->Update(),<br>
>> but I think this will break the streaming functionality?  Any easy solutions<br>
>> to this problem that will preserve streaming and let me run the full<br>
>> pipeline with only one Update call?  My guess is I will need to move the<br>
>> geometry subselection to PhaseGatingImageFilter::GenerateOutputInformation()<br>
>> then call UpdateOutputInformation in the main application?<br>
>><br>
>> Thanks,<br>
>> Geoff<br>
>><br>
>> ------------------------------------<br>
>> Geoffrey D. Hugo, Ph.D.<br>
>> Associate Professor, Radiation Oncology<br>
>> Director, Medical Physics Graduate Program<br>
>> Virginia Commonwealth University<br>
>> <a href="tel:%28804%29%20628%203457" value="+18046283457">(804) 628 3457</a><br>
>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> Rtk-users mailing list<br>
>> <a href="mailto:Rtk-users@public.kitware.com">Rtk-users@public.kitware.com</a><br>
>> <a href="http://public.kitware.com/mailman/listinfo/rtk-users" target="_blank">http://public.kitware.com/mailman/listinfo/rtk-users</a><br>
>><br>
</div></div>> <rtkPhaseGatingImageFilter.txx><br>
<br>
<br>
</blockquote></div><br></div>