Skip to content

Segmentation directly from projections using deformable curve

License

Notifications You must be signed in to change notification settings

vedranaa/tomography-snake

Repository files navigation

TomographySnake

A collection of functions and scripts which produces slightly simplified figures used in our paper Computing segmentations directly from x-ray projection data via parametric deformable curves. (Open-access accepted author version of the manuscript can be found here.) Please cite our paper, if you use our code in your research.

@article{dahl2017computing,
    title={Computing segmentations directly from x-ray projection data via parametric deformable curves},
    author={Vedrana Andersen Dahl and Anders Bjorholm Dahl and Per Christian Hansen},
    journal={Measurement Science and Technology},
    volume={29},
    number={1},
    pages={014003},
    year={2017},
    publisher={{IOP} Publishing}
}

Illustration (Figure 7 from our paper) shows,
top row: test object, noise-free sinogram, noisy sinogram, evolution of the curve starting from the circle;
bottom row: resulting curve, resulting predicted sinogram, resulting residual and resulting reconstruction.

Using our code

Download the code, and run it in MATLAB. To produce the different results shown in our paper, you will need to change the values of the settings and comment/uncomment pieces of code as indicated in the comments. Also, check our paper to see which value ranges are reasonable. The translation between variable names in the paper and in the code is found below.

Variable (setting) in paper in code defaul value
Relative noise level eta 0.1
Number of projection angles nr_angles 15
Number of detector pixels detector_number 200
Number of curve points N 500
Curve elasticity alpha 0.01
Curve rigidity beta 0.01
Update step length w 0.05
Number of iterations max_iter 500
Variable in paper in code
Test object vertices (for geometry) or I (for image)
Noise-free sinogram sinogram_gt
Noisy sinogram sinogram_target
Resulting curve current (after evolution)
Resulting predicted sinogram current_sinogram (after evolution)
Resulting residual residual (after evolution)
Resulting reconstruction obtained by fill(current...)

Additional requirements

Most of the scripts should run as-is. However, comparison with SART and DART (Figure 13) requires ASTRA toolbox. Additionally, for forward projections in Figures 14-16 we use AIRtools for results included in the paper. However, with a little bit of tweaking (as explained in the comments and included in the code), radon function can be used instead.

About

Segmentation directly from projections using deformable curve

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages