<div dir="ltr"><div>Hi,</div><div>Yes, everything you said in your first email is correct. But you can replace "<span class="gmail-im">forward projection of ones (using your Joseph forward projector)" by the </span> <a href="https://www.openrtk.org/Doxygen/classrtk_1_1SARTConeBeamReconstructionFilter.html" target="_blank">rtk::RayBoxIntersectionImageFilter</a> as implemented in RTK to make things faster.</div><div>The additional blurring in your images is most likely due to the intermediate interpolation steps for warping.</div><div>Are your projection images truncated? If yes, you may want to add the offset detector image filter as in the application to avoid the artifact you mention:</div><div><a href="https://github.com/RTKConsortium/RTK/blob/master/include/rtkSARTConeBeamReconstructionFilter.hxx#L44">https://github.com/RTKConsortium/RTK/blob/master/include/rtkSARTConeBeamReconstructionFilter.hxx#L44</a></div><div>This has been described in this paper:</div><div><a href="https://doi.org/10.1088/0031-9155/58/2/205">https://doi.org/10.1088/0031-9155/58/2/205</a><a class="clickandreadBtn" title="Ressource found in UNIVERSITE GRENOBLE ALPES (UGA)" href="https://grenoble.alma.exlibrisgroup.com/view/action/uresolver.do?operation=resolveService&package_service_id=20495761340006161&institutionId=6161&customerId=6160" target="_blank"><img src="data:image/svg+xml;base64,PHN2ZyBpZD0iQ2FscXVlXzEiIGRhdGEtbmFtZT0iQ2FscXVlIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwIDI4LjE4Ij48cmVjdCB3aWR0aD0iNTAiIGhlaWdodD0iMjguMTgiIHJ4PSIxNC4wOSIgc3R5bGU9ImZpbGw6IzIxY2UyMSIvPjxwYXRoIGQ9Ik0xOC45MywxNi40NWEuMzIuMzIsMCwwLDAtLjU0LjIydjJoLTRhNS4wOCw1LjA4LDAsMCwxLDAtMTAuMTZoNS4yMlY1LjQ0SDE0LjQ0YTguMTQsOC4xNCwwLDAsMCwwLDE2LjI4aDR2MmEuMzIuMzIsMCwwLDAsLjU0LjIzbDMuNTEtMy41MWEuMzQuMzQsMCwwLDAsMC0uNDZaIiBzdHlsZT0iZmlsbDojZmZmIi8+PHBhdGggZD0iTTQyLjUyLDIxLjA3bC00Ljg0LTUuNjlhMCwwLDAsMCwxLDAsMCw1LjMsNS4zLDAsMCwwLDIuNTktNC45LDUuNDMsNS40MywwLDAsMC01LjQ4LTVIMjguNDhhMCwwLDAsMCwwLDAsMFYyMS42OWEwLDAsMCwwLDAsMCwwaDMuMDVsMCwwVjguNTVzMCwwLDAsMEgzNWEyLjI0LDIuMjQsMCwwLDEsMi4yMiwyLjUzLDIuMywyLjMsMCwwLDEtMi4zMiwySDMyLjRhLjM2LjM2LDAsMCwwLS4yOC41OWw2LjYyLDcuNzlhLjkzLjkzLDAsMCwwLC42OC4zMWgyLjgxQS4zOS4zOSwwLDAsMCw0Mi41MiwyMS4wN1oiIHN0eWxlPSJmaWxsOiNmZmYiLz48Y2lyY2xlIGN4PSIyNC4yIiBjeT0iOC4yIiByPSIyLjc2IiBzdHlsZT0iZmlsbDojZmZmIi8+PC9zdmc+" width="27"></a></div><div>Simon</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Thu, Apr 17, 2025 at 10:48 PM Andosca, Ryan <<a href="mailto:RAndosca@mednet.ucla.edu">RAndosca@mednet.ucla.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg4148892416253568799">
<div dir="ltr">
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
As an update, I swapped to the voxel-based back projection (from CudaRaycast) and normalized in just one step by dividing the forward projection by a forward projection of ones. The image quality did improve a little, but the main artifact of concern is still
present. To describe the artifact better, it's a bright cylinder near the center of the patient. I'm now wondering if this may be a geometry error of some kind rather than normalization... No such artifact exists when I use the rtksart application, which uses
the same geometry file I use in my MCSART MATLAB implementation. But there are other areas where geometry artifacts might originate, like improperly updating file headers etc...</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Since my coding is very clunky, my code involves a lot of saving out variables, sending them to RTK applications, then loading the results back into MATLAB for deformation. Not exactly streamlined, I know. But perhaps some header information isn't being sent
to the RTK applications that should be at some point, or the header information is off slightly somewhere. I'll attach an image of the artifact in question to this email, though I'm not sure it will appear on the message board.<br>
<br>
In the images, left is the rtksart output and right is my MCSART result (after one iteration). Also notice that the SART image appears sharper than MCSART - I can't be sure if that's a function of noise or what, but that difference may also speak to the issue
for all I know... That diaphragm sure gets sharper though, so motion compensation is at least doing what it should be doing.</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<img size="428731" style="max-width: 1249px;" src="cid:ii_19647b65af2cb971f162"><br>
<br>
<img id="m_4148892416253568799image_0" size="286605" style="max-width: 1249px;" src="cid:ii_19647b65af2cb971f161"><br>
<br>
</div>
<div id="m_4148892416253568799appendonsend"></div>
<hr style="display:inline-block;width:98%">
<div dir="ltr" id="m_4148892416253568799divRplyFwdMsg"><span style="font-family:Calibri,sans-serif;font-size:11pt;color:rgb(0,0,0)"><b>From:</b> Andosca, Ryan <<a href="mailto:RAndosca@mednet.ucla.edu" target="_blank">RAndosca@mednet.ucla.edu</a>><br>
<b>Sent:</b> Thursday, April 17, 2025 8:55 AM<br>
<b>To:</b> Simon Rit <<a href="mailto:simon.rit@creatis.insa-lyon.fr" target="_blank">simon.rit@creatis.insa-lyon.fr</a>><br>
<b>Cc:</b> <a href="mailto:rtk-users@openrtk.org" target="_blank">rtk-users@openrtk.org</a> <<a href="mailto:rtk-users@openrtk.org" target="_blank">rtk-users@openrtk.org</a>><br>
<b>Subject:</b> Re: [Rtk-users] Implementing a Motion-Compensated SART (MCSART) Reconstruction</span>
<div> </div>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Hi Simon,</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Thank you so much for your reply! If I understand correctly, I just need to divide the forward projection step by a forward projection of ones (using your Joseph forward projector, which I do), and if I use voxel-wise back projection I needn't apply a secondary
normalization to the back projection step? Is there a downside, maybe computationally, to this implementation? And if I do use Joseph back projection, do I normalize by dividing by a Joseph back projection of ones through the current projection's geometry?
Apologies for the flurry of questions, I'm quite new to this and doing my best to learn as I go!<br>
<br>
If you are able to implement a command line application that utilizes the warp projectors, that would be simply amazing for me! My Frankenstein implementation is a bit of a mess, after all.</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I greatly appreciate all of your help!</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Best,</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Ryan</div>
<div id="m_4148892416253568799x_appendonsend"></div>
<hr style="direction:ltr;display:inline-block;width:98%">
<div dir="ltr" id="m_4148892416253568799x_divRplyFwdMsg"><span style="font-family:Calibri,sans-serif;font-size:11pt;color:rgb(0,0,0)"><b>From:</b> Simon Rit <<a href="mailto:simon.rit@creatis.insa-lyon.fr" target="_blank">simon.rit@creatis.insa-lyon.fr</a>><br>
<b>Sent:</b> Thursday, April 17, 2025 7:48 AM<br>
<b>To:</b> Andosca, Ryan <<a href="mailto:RAndosca@mednet.ucla.edu" target="_blank">RAndosca@mednet.ucla.edu</a>><br>
<b>Cc:</b> <a href="mailto:rtk-users@openrtk.org" target="_blank">rtk-users@openrtk.org</a> <<a href="mailto:rtk-users@openrtk.org" target="_blank">rtk-users@openrtk.org</a>><br>
<b>Subject:</b> Re: [Rtk-users] Implementing a Motion-Compensated SART (MCSART) Reconstruction</span>
<div> </div>
</div>
<div style="opacity:1;max-width:none;max-height:none;display:block;text-align:left;margin:16px 0px;padding:8px 16px;border-radius:4px;min-width:200px;background-color:rgb(218,235,254);border-top:4px solid rgb(160,203,245)" id="m_4148892416253568799x_x_pfptBanners7z0wrq" lang="en" dir="ltr">
<div style="opacity:1;background-color:rgb(218,235,254);max-height:none;float:left;display:block;margin:0px 0px 1px;max-width:600px" id="m_4148892416253568799x_x_pfptBanners7z0wrq">
<div style="opacity:1;max-width:none;max-height:none;display:block;background-color:rgb(218,235,254);color:rgb(0,0,0);font-family:Arial,sans-serif;font-weight:bold;font-size:14px;line-height:18px" id="m_4148892416253568799x_x_pfptBanners7z0wrq">
Caution: External sender from outside our organization.</div>
<div style="font-weight:normal;opacity:1;max-width:none;max-height:none;display:block;background-color:rgb(218,235,254);color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:12px;line-height:18px;margin-top:2px" id="m_4148892416253568799x_x_pfptBanners7z0wrq">
Proceed with caution with regard to links and attachments.</div>
</div>
<div style="opacity:1;background-color:rgb(218,235,254);max-width:none;max-height:none;float:right;display:block;margin:0px 0px 0px 16px;text-align:right;width:fit-content" id="m_4148892416253568799x_x_pfptBanners7z0wrq">
<div style="white-space:nowrap;margin:3px 0px 3px 16px;padding:7.5px 16px;border-width:1px;border-style:solid;border-color:rgb(102,102,102);border-radius:2px;display:inline-block;font-family:Arial,sans-serif;font-size:14px;color:rgb(0,0,0)">
<span style="background-color:rgb(218,235,254)"><a href="https://us-phishalarm-ewt.proofpoint.com/EWT/v1/F9wkZZsI-LA!NQZKB92JqBjHLcZIRWJ0aZ3KEw4s7AbRCLACL3c0LXgq9ucGal0mGm_Nc6Tppel1CJJe9obSKsZwpIAmMViSGzrzmowa9MR7iDOyuhrkh8XdZNx1RQuFT0lZslJ50k3E$" id="m_4148892416253568799x_x_pfptBanners7z0wrq" style="text-decoration:none;display:inline-block;background-color:rgb(218,235,254);max-width:none;max-height:none" target="_blank">Report Suspicious</a></span></div>
</div>
<div style="line-height:0;display:block;font-size:0.01px"> </div>
</div>
<div style="direction:ltr">Hi Ryan,</div>
<div style="direction:ltr">If you check our code, the normalization step is quite simplistic to avoid a backprojection: we simply calculate and divide by the length of the intersection between each ray and the "image box" (parallelepiped corresponding to
the space occupied by the volume) using the <a href="https://urldefense.com/v3/__https://www.openrtk.org/Doxygen/classrtk_1_1SARTConeBeamReconstructionFilter.html__;!!F9wkZZsI-LA!GszYXB332VHa24rMYhbTodaEcyBkB3au3CfqoEhD766UVgPR9YWIjlUO-SvPdKa53H0Kor1LC_0Jw95zlWeI69YbY2D0kEAHUA$" id="m_4148892416253568799OWAc94fc40b-ec70-69c3-c807-af024faa5039" target="_blank">
rtk::RayBoxIntersectionImageFilter</a>. This is exactly what you should get if you forward project a volume of 1 with our Joseph forward projectors. See the diagram from the implementation of SART:</div>
<div style="direction:ltr"><a href="https://urldefense.com/v3/__https://www.openrtk.org/Doxygen/classrtk_1_1SARTConeBeamReconstructionFilter.html__;!!F9wkZZsI-LA!GszYXB332VHa24rMYhbTodaEcyBkB3au3CfqoEhD766UVgPR9YWIjlUO-SvPdKa53H0Kor1LC_0Jw95zlWeI69YbY2D0kEAHUA$" id="m_4148892416253568799OWA6d0d6d9f-f27b-4dfe-a5af-f8dbb5a81b5c" target="_blank">https://www.openrtk.org/Doxygen/classrtk_1_1SARTConeBeamReconstructionFilter.html</a></div>
<div style="direction:ltr">Maybe you can try to do the same here?</div>
<div style="direction:ltr">For what you want to do, it would be better to use a forward and backprojector combining the projection and a vector field... We have it available for the
<a href="https://urldefense.com/v3/__https://www.openrtk.org/Doxygen/classrtk_1_1FDKWarpBackProjectionImageFilter.html__;!!F9wkZZsI-LA!GszYXB332VHa24rMYhbTodaEcyBkB3au3CfqoEhD766UVgPR9YWIjlUO-SvPdKa53H0Kor1LC_0Jw95zlWeI69YbY2DuZTwQnQ$" id="m_4148892416253568799OWA8cd0f6ce-c0e5-3a60-6384-8978ebc226ba" target="_blank">
backprojection</a> and for the <a href="https://urldefense.com/v3/__https://www.openrtk.org/Doxygen/classrtk_1_1ForwardWarpImageFilter.html__;!!F9wkZZsI-LA!GszYXB332VHa24rMYhbTodaEcyBkB3au3CfqoEhD766UVgPR9YWIjlUO-SvPdKa53H0Kor1LC_0Jw95zlWeI69YbY2Dhk08GsA$" id="m_4148892416253568799OWA8defe17c-d690-4c20-eb1d-58b8a857697a" target="_blank">
forward</a>, maybe we should try to implement it in the SART command line application for you... I have opened an issue to track this:</div>
<div style="direction:ltr"><a href="https://urldefense.com/v3/__https://github.com/RTKConsortium/RTK/issues/721__;!!F9wkZZsI-LA!GszYXB332VHa24rMYhbTodaEcyBkB3au3CfqoEhD766UVgPR9YWIjlUO-SvPdKa53H0Kor1LC_0Jw95zlWeI69YbY2AlXwVyeg$" id="m_4148892416253568799OWA1122da7b-4df1-a8db-d82c-5d20dc6e7d1f" target="_blank">https://github.com/RTKConsortium/RTK/issues/721</a></div>
<div style="direction:ltr">Cheers,</div>
<div style="direction:ltr">Simon</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">On Mon, Apr 14, 2025 at 6:25 PM Andosca, Ryan <<a href="mailto:RAndosca@mednet.ucla.edu" id="m_4148892416253568799OWA935b9877-8c4c-4d64-9d49-efb6855f5fd6" target="_blank">RAndosca@mednet.ucla.edu</a>> wrote:</div>
<blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left:1px solid rgb(204,204,204)">
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Hi,</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
So, my experience with coding, especially in C, is extremely limited. I mostly work in MATLAB, and as such I've been primarily using the built-in console applications to perform reconstruction on CBCT datasets. The rtksart application works great and provides
a beautiful reconstruction. My goal is to effectively do the same reconstruction, but tack on motion compensation to each iteration.</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
After delving into the algorithm implementation in rtksart as much as I am able, I wrote a MATLAB workflow that boils down to:</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0);list-style-type:"- "">
<div style="direction:ltr">Start with image of zeros</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0);list-style-type:"- "">
<div style="direction:ltr">Randomize gantry angle order</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0);list-style-type:"- "">
<div style="direction:ltr">Iterate over gantry angles:</div>
</li><ul style="direction:ltr;margin-top:0px;margin-bottom:0px;list-style-type:circle">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="direction:ltr">Load current projection forward and backward motion compensation DVFs</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="direction:ltr">Deform current image iteration to current gantry angle breathing state</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="direction:ltr">Forward project deformed image</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="direction:ltr">Subtract deformed projections from raw CBCT image data</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="direction:ltr">Back project the subtraction image</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="direction:ltr">NORMALIZE BACK PROJECTION (this is where I think my issue is)</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="direction:ltr">Deform normalized back projection back to the original image space</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="direction:ltr">Update current image: img = img + lambda * (normalized_back_projection / number_of_gantry_angles)</div>
</li><ul style="direction:ltr;margin-top:0px;margin-bottom:0px">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="direction:ltr">Note: This step, as it also contains normalization, may also be a source of my issue...</div>
</li></ul>
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="direction:ltr">Set negatives to 0</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="direction:ltr">Repeat</div>
</li></ul>
</ul>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I get an image that is much as I expect - a much sharper diaphragm and generally higher definition in soft tissue structures. So I must be generally on the right track. The issue is that the normalization is clearly off in some way. I have a bright circle artifact
in the middle of the image and some striping throughout. Try as I might to understand it, I couldn't discern how normalization was done in the rtksart application. So, this is the method I used:</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0);list-style-type:"- "">
<div style="direction:ltr">Create an image of 1s of the size of the final (SART reconstructed) image.</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0);list-style-type:"- "">
<div style="direction:ltr">Forward project through this image of 1s</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0);list-style-type:"- "">
<div style="direction:ltr">Back project through the resulting forward projection</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0);list-style-type:"- "">
<div style="direction:ltr">In the normalization step in the MCSART process detailed above, I simply divide by this resulting back projection.</div>
</li></ul>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Knowing all of that, any idea what my issue might be leading to my artifacts? Ultimately, I know it would be more ideal if I just altered the rtksart application itself to include motion compensation, and then I'd just be using the built-in normalization that
clearly works, but I find my abilities lacking when I attempt to do this... So instead I am just seeking to understand how that application implements normalization, so that I can use a similar normalization in my algorithm!<br>
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I greatly appreciate any help provided!</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Best,</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
R. Andosca</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
GSR</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
UCLA Health</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr"><br>
</div>
<hr style="direction:ltr">
<div style="direction:ltr;font-family:Arial;font-size:13px;color:navy"><br>
UCLA HEALTH SCIENCES IMPORTANT WARNING: This email (and any attachments) is only intended for the use of the person or entity to which it is addressed, and may contain information that is privileged and confidential. You, the recipient, are obligated to maintain
it in a safe, secure and confidential manner. Unauthorized redisclosure or failure to maintain confidentiality may subject you to federal and state penalties. If you are not the intended recipient, please immediately notify us by return email, and delete this
message from your computer.</div>
<div style="direction:ltr">_______________________________________________<br>
Rtk-users mailing list<br>
<a href="mailto:rtk-users@openrtk.org" id="m_4148892416253568799OWA74aae400-0551-c325-867a-23ce026decbb" target="_blank">rtk-users@openrtk.org</a><br>
<a href="https://urldefense.com/v3/__https://www.creatis.insa-lyon.fr/mailman/listinfo/rtk-users__;!!F9wkZZsI-LA!GszYXB332VHa24rMYhbTodaEcyBkB3au3CfqoEhD766UVgPR9YWIjlUO-SvPdKa53H0Kor1LC_0Jw95zlWeI69YbY2CRTS8UpQ$" id="m_4148892416253568799OWA6d7b06a1-f893-bbfc-9764-1e472eff5601" target="_blank">https://www.creatis.insa-lyon.fr/mailman/listinfo/rtk-users</a></div>
</blockquote>
</div>
</div></blockquote></div>