Hi,

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.

After delving into the algorithm implementation in rtksart as much as I am 
able, I wrote a MATLAB workflow that boils down to:

  *
Start with image of zeros
  *
Randomize gantry angle order
  *
Iterate over gantry angles:
     *
Load current projection forward and backward motion compensation DVFs
     *
Deform current image iteration to current gantry angle breathing state
     *
Forward project deformed image
     *
Subtract deformed projections from raw CBCT image data
     *
Back project the subtraction image
     *
NORMALIZE BACK PROJECTION (this is where I think my issue is)
     *
Deform normalized back projection back to the original image space
     *
Update current image: img = img + lambda * (normalized_back_projection / 
number_of_gantry_angles)
        *
Note: This step, as it also contains normalization, may also be a source of my 
issue...
     *
Set negatives to 0
     *
Repeat

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:

  *
Create an image of 1s of the size of the final (SART reconstructed) image.
  *
Forward project through this image of 1s
  *
Back project through the resulting forward projection
  *
In the normalization step in the MCSART process detailed above, I simply divide 
by this resulting back projection.

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!

I greatly appreciate any help provided!

Best,
R. Andosca
GSR
UCLA Health





________________________________

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.
_______________________________________________
Rtk-users mailing list
[email protected]
https://www.creatis.insa-lyon.fr/mailman/listinfo/rtk-users

Reply via email to