Backprojection without restrict to cylindrical FOV can result in images with 0 boundaries
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 160
- Forks
- 113
- Avg merge
- 12d 15h
- Merged PRs (30d)
- 1
Description
Using the executable comand:
back_project my_back_projection.hv my_sino.hs template_image.hv backward_projection.par
where backward_projection.par is:
Back Projector parameters:=
type := Matrix
Back projector Using Matrix Parameters :=
Matrix type := Ray Tracing
Ray tracing matrix parameters :=
restrict to cylindrical FOV := 0
number of rays in tangential direction to trace for each bin := 10
do symmetry 90degrees min phi := 1
do symmetry 180degrees min phi := 1
End Ray tracing matrix parameters :=
End Back Projector Using Matrix Parameters :=
End:=
and my_sino.hs is a Discovery 690 sinogram and template_image.hv is
Origin in mm {z,y,x} :{0, 0, 0}
Voxel-size in mm {z,y,x}:{3.27, 2.1306, 2.1306}
Min_indices {z,y,x} :{0, -125, -125}
Max_indices {z,y,x} :{46, 124, 124}
Number of voxels {z,y,x}:{47, 250, 250}
Physical coordinate of first index in mm {z,y,x} :{0, -266.325, -266.325}
Physical coordinate of last index in mm {z,y,x} :{150.42, 264.194, 264.194}
Physical coordinate of first edge in mm {z,y,x} :{-1.635, -267.39, -267.39}
Physical coordinate of last edge in mm {z,y,x} :{152.055, 265.26, 265.26}
The resulting back projection has a 1 voxel wide gap along the edges that each have value 0.0. The following image is a single slice of the backprojected image, imported into numpy and displayed using matplotlib.pyplot.

FORWARD PROJECTION
Thresholding and setting all voxel values to zero and along the image boundary, each of the voxel is set to 1. The forward projection using a similar forward_projection parameter file has a sum of 0. These voxel values are therefore not utilised in either the foward or backwards projections. Therefore, this is not a big issue, just something that should be documented.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the back_project command with backward_projection.par, my_sino.hs, and template_image.hv, then compare the boundary behavior with restrict to cylindrical FOV enabled and disabled. Document the one-voxel zero-valued boundary and the reported forward/backprojection behavior, including the Discovery 690 context.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-vision, documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100