CERN / TIGRE

TIGRE: Tomographic Iterative GPU-based Reconstruction Toolbox
BSD 3-Clause "New" or "Revised" License
550 stars 182 forks source link

Flip after projection loading and ring artefacts #345

Closed blauyang closed 2 years ago

blauyang commented 2 years ago

Expected Behavior

I would like to keep the projection image in its original coordinates once it has been loaded into the toolkit

Actual Behavior

The top figure shows the single original projection and the bottom figure shows the projection obtained by using plotProj().

original-projections cera_projections

When I imported the projection through the loop, the projection was reversed up and down, including the reconstruction results. The image on the left is the result I got via tigre. The picture on the right is the result obtained by commercial CT.

tigre-cera-Y

In addition ring artefacts appear in the reconstruction results as shown below.

Tigre_Z_slice128

Specifications

Thank you in advance!

AnderBiguri commented 2 years ago

This is unrelated to TIGRE, and related to how images are visualized in MATLAB.

Your first image is the same as TIGRE one, except that in matlab, if you do imshow, the 0,0 point is in the top left corner, not bottom right. The only difference between the two is visualization. It also may be a difference between what your compercial CT considers the positive Z axis and what TIGRE considers the positive Z axis, there is no reason (and in reality, it almost never happens) to have a consensus in what is each thing.

So.... why don't you just flip it? Matlab provides functions such as flip() to simple flip any axis that you want. just change it to whatever you prefer.

AnderBiguri commented 2 years ago

About the ring artifacts: can you show a higher resolution image? It all looks like expected artifacts, TIGRE has no function to reduce ring artifacts (in fact this is often done in acquisition rather than post-processing), so if there are artifacts its likely they are in the data.

blauyang commented 2 years ago

Hi @AnderBiguri, Thank you for your quick and detailed answer. I will go and flip them.

About the ring artifacts, For the same projection I also used the Astra toolkit to reconstruct it, but no ring artifacts appeared.

Astra_XYZ

By high resolution image do you mean the original projection image, if so ,the image below. The image above is the one I opened using matlab, the one below is opened using imageJ.

original-projections-1 original-projections-imageJ

AnderBiguri commented 2 years ago

No, I meant a high resolution image of the result with the artifacts. The images are too small and I can't honestly see what you mean, or any difference. Show me where the artifacts are, and show me why you expect them not to be there!

blauyang commented 2 years ago

Hallo @AnderBiguri , By ring artefact I mean this shiny circle that surrounds the outside of the workpiece.

Tigre_Z_slice128-1

AnderBiguri commented 2 years ago

That is normal in FDK. Most people just crop it with a circular mask. the function cropCBCT will do it in TIGRE.

Note: ring artifacts are a very specific artifact type in CT, that look like this:

image

This is why I could not see them.

blauyang commented 2 years ago

Sorry for my incorrect use of technical words. I got it. Thank you again for your answer.

AnderBiguri commented 2 years ago

No worries :) I was just clarifying for the future! we all learn at some point!