LLNL / LEAP

comprehensive library of 3D transmission Computed Tomography (CT) algorithms with Python and C++ APIs, a PyQt GUI, and fully integrated with PyTorch
https://leapct.readthedocs.io
MIT License
116 stars 12 forks source link

MAR supporting at conebeam #105

Closed hws203 closed 1 month ago

hws203 commented 1 month ago

@champley Can you guide me how to adapt leapct"s MAR into conebeam? Your demo script only supports at fanbeam case.

kylechampley commented 1 month ago

The demo script already is for cone-beam. See here.

hws203 commented 1 month ago

Yes, I can see your demo script works well at the case of more than one numRow value. So it is for cone-beam. Thanks for your confirmation. But it looks too slow depends on numRows value.

kylechampley commented 1 month ago

The most time-consuming part of this algorithm is generating the "prior" sinogram using RWLS. Note that this can be generated with a low-resolution reconstruction to save time. I tested this with the demo script and not only did it run faster, but it gave better results!

hws203 commented 1 month ago

@kylechampley Thanks for your comments. I will do it too.

hws203 commented 1 month ago

I reconstructed some limited range of z-slice(50) from real sample projection images, then which saves some time. I guess that the metal size is limited, and it will not affect all z-slice area. Below is the slice from real sample. As you can see below, on the real sample image, there are still some artifact even after leapct's MAR processing. chicken

I can see that more iteration number(100) of RWLS can make a little better result at real sample image.

chicken_2

kylechampley commented 1 month ago

There are definitely parameters to tune in this algorithm. Make sure the entire metal region is segmented out- you may want to dilate your segmentation to include the boundary. Your prior image must be artifact-free. I'd definitely use a lot of iterations of RWLS and use a volume that is downsampled by a factor between 2 and 4. You may also want to modify the weights in RWLS.

hws203 commented 1 month ago

I used the dilate function at metal mask image, then I can see a little better one.

chicken_3