I have measured some sinograms of a specific sample. However, there is some wobbling motion that disturbes the resulting images. Since the red upper and lower lines (indicated with black arrows) are expected to be straight without occurring wobbling motion, I want to use this information to correct my images. Is there any method that is able to straighten the lines and transform the image accordingly? I use matlab as programming language but I would also like to hear about general ideas. demo sinogram image

The lower image is an approach to correct the image using additional information about the image (although it does not seem to work very good it might be a better starting point as the upper image)

  • $\begingroup$ Is this real data or simulated? If the phantom is assumed rigid, the apparent "wobbling" shouldn't be a problem at reconstruction. It simply means that the phantom was placed slightly off the gantry's center of rotation. If you are correcting the sinogram, you are distorting the phantom. You could try to correct (in a number of ways) If the geometry is variable (e.g. deformable phantom, "wobblying" data acquisition track) but is this what is really happening here? $\endgroup$ – A_A Jul 5 '16 at 8:59
  • $\begingroup$ @A_A it is real data and the Phantom is non-rigid. Basically the Phantom is a specimen Inside a non-rigid glass Tube. I assume that the Glass tube can be bended but not compressed $\endgroup$ – snalx Jul 5 '16 at 21:35

The sinogram does make sense if the object is deformable, although if it was sagging under the force of gravity, it should be registering maximum deviation when viewed at 90 degrees (gantry 0 degees is "North"). This one seems to be registering maximum deviation at approximately 135 degrees.

If the glass tube can bend then it can compress as well. If we forget true orientation for a bit and focus on the top sinogram, then the top part of the tube is compressing while the bottom part is "expanding" to create the bend.

In the bottom image, you seem to be correcting in a "naive" way. That is by shifting columns up or down (vertically) by some amount dictated by the curvature of the walls of the tube.

However, the object is deformable. Which means that the slice that is vertical to the gantry's plane of rotation is NOT vertical to the plane of deformation. In other words, shifting up or down distorts the image because it picks up adjacent "voxels" that do not belong to the slice you are trying to correct for. Another way to look at this is that you are decreasing the resolution at the compressed areas and increasing it at the expanded areas.

This last point is important when applying corrections because it will insert some error that is proportional to the elasticity of the tube / specimen. That is, geometrically, the objects might reconstruct at more accurate locations but their density "measurements" might be slightly "blurred".

If you absolutely have to correct the sinogram then you would be looking at image warping and specifically polynomial (or spline) warping.

The approach is to fit a deformable rectangular fine grid over the deformed object and then REMAP the deformed grid on to a parallel grid using interpolation (to fill in those gaps because of curvature I am hinting above). In other words, you will be scanning the (deformed) sinogram, left-right, top-bottom ALONG the curve of deformation and each one of these points will be REMAPPED on to the straight grid locations. (Something similar to this)

This assumes that the contents of the tube are homogeneous (which is probably not true). If they are not, then their deformation depends on their elasticity, the tube deforms differently than the specimen and while you will be correcting one, you will be distorting the other.

Anyway, what you can try to do is to fit a polynomial on the top boundary (corresponding to angle) and at each point use vertical (to the slope of the polynomial) segments (corresponding to y) to recover the warping polynomials.

For more information regarding the background of polynomial image warping please see this link (Sections 2, 2.6) and this link. For more information on using MATLAB to recover and apply these transforms please see this link and more specifically this link (or possibly this link too).

Finally, an idea would be to set the tube upright and rescan but that orientation has its own set of distortions and compromises.

Hope this helps.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.