SlideShare a Scribd company logo
1 of 9
Download to read offline
Notation
For the section on sinogram interpolation the notation scheme that follows will be used.
This notation is used to simplify mathematical expressions given inn the following section
and the explanations thereof.
Continuous indices:
Notation Description Range
x, y Position in a continuous image. x, y ∈ [−∞, ∞]
θ Integration angle for the forward radon transform. θ ∈ [0, 2π]
r, φ Position in a continuous image in polar coordinates. φ ∈ [0, 2π], r ∈ [0, ∞]
Discrete indices:
Notation Description Range
i, j Pixel positions in a discrete image. i = 1, . . . , n, j = 1, . . . , m
θt Index of the t-th Sinogram column at angle θt = t∆θ. θt ∈ [0, 2π], t = 1, . . . , ¯θ
rk, φk Pixel positions in a discrete image in polar coordinates. φ ∈ [0, 2π],
r ∈ [0, 1/2n2 + 1/2m2]
ic, jc Image center. i = 1
2
n, j = 1
2
m
h Index for sinogram row. h = −1
2
¯h, . . . , 1
2
¯h.
Clarification of values:
Value Description Refer to
A The original image in cartesian coordinates.
V The original image in polar coordinates.
S The sinogram of A or V .
W The set of all warps.
n, m Original image size.
¯h Number of sinogram rows.
¯θ Number of sinogram columns.
¯k Number of warps found in a known sinogram.
¯L Number of warps that pass through a known sinogram element.
1
Sinogram interpolation
J. Engelbrecht,
University of Stellenbosch
1 Sinogram interpolation
A technique for improving the obtained blur kernel sinogram is presented here. Methods
developed by [3] for sinogram interpolation are used as a basis for the work that follows.
Figure 1: An image and its sinogram
1.1 Sinograms and the forward Radon transform
1.1.1 Sinograms
A sinogram is a matrix S with column vectors sθ such that
S = [sθ1 , sθ2 , . . . , sθ¯θ
],
of size ¯h × ¯θ with corresponding angular vector
Θ = [θ1, θ2, . . . , θ¯θ].
Each column sθ is the Radon projection of an image A(x, y) referred top as the original
image at the angle θ under the Radon transform where θt is the angle corresponding to
the t-th column of S with t ∈ [1, . . . , ¯θ].
2
1.1.2 The forward transform
By the definition the forward Radon transform a continuous representation of sinogram
column sθt can be expressed as the line integral
sθ(ˆh) =
∞
−∞
∞
−∞
A(x, y)δ(ˆh − x cos(θ) − y sin(θ))dxdy (1)
over the line ˆh = x cos(θ) + y sin(θ)1
. We aim to describe (1) using the polar coordinate
Figure 2: The forward Radon transform
transformation:
x = r cos(φ), y = r sin(φ) where dxdy = rdrdφ.
Applying this transformation to the original image A(x, y) according to equation (1) it
is shown that
V (r, φ) = A(x, y),
sθ(ˆh) =
∞
−∞
∞
−∞
V (r, φ)δ(ˆh − r cos(φ) cos(θ) − r sin(φ) sin(θ))rdrdφ (2)
=
∞
−∞
∞
−∞
V (r, φ)δ(ˆh − r cos(φ + θ))rdrdφ. (3)
here the image A(x, y) is relabel as the polar coordinate image V (r, θ). The last expression
represents the integral over the line
ˆh = r cos(φ + θ).
1
We choose to use this definition of the line integral since here δ has the geometric interpretation of
allowing only points that fall on the line ˆh to be include in the summation for sh,θ(ˆh). In the discrete
equation δ corresponds to the chosen method of image sampling, this is discussed further in section
ADDDD SECTION
3
This is desretized by letting
xj = j∆x for j = 1, . . . , m,
yi = i∆y for i = 1, . . . , n,
Ai,j = A(xj, yi), with
θt = t∆θ for t = 1, . . . , ¯θ.
In practice when discretizing (1) a sinogram element is expressed as
sθt (ˆh) =
i j
Ai,j∆(ˆh − xj cos(θt) − yi sin(θt)), (4)
which simply means that each element of a sinogram Sh,θt is the discrete summation over
all the pixel values along the line ˆh = x cos(θt) + y sin(θt). Here ∆(·) is a “selection
function” corresponding to the users choice of discrete sampling method over continuous
line ˆh. Note when dealing with the polar coordinates a different indexing method is used.
Figure 3: Interpretation of summation for discrete forward transform
The positions are indexed sequentially since there is always equal number of angles φk
and radii rk. Using equation (3) and,
rk = k∆r, and φk = k∆φ for k = 1, . . . , (m · n),
4
a sinogram element is expressed as
sθt (ˆh) =
k
V (rk, φk)∆(ˆh − rk cos(φk + θt))rk. (5)
This is equivalent to equation (4) since the summation is still occurring for point along
ˆh. However the points along ˆh are now expressed in polar coordinates (r, φ) by what is
called the pixel position curve
uk = rk cos(φk + θt).
This equation corresponds to a cosine curve that passes thought the sinogram for each
pixel in the image A. This implies that the sinogram of an image can be calculate by
finding the position curves for all the pixels in the image and then performing a summation
over the pixel values at the points where the curves intersect.
Figure 4: An image and its sinogram
1.2 Warps
A warp wk is a weight carrying cosine wave that passes through only strictly positive
elements in a sinogram.
wk = {vk, uk(θ)} , wk ∈ W
where vk is the warp value.
uk(θ) = rk cos(θ + φk) (6)
is referred to as a warp curve with rk the warp amplitude and φk the warp phase angle.
5
Figure 5: Warps passing through a sinogram
For such a curve to be defined as a warp, the original image and its given possibly sparse
sinogram, as well as each curve that passes through that sinogram must satisfies the
following warp conditions:
1. Each non-zero pixel in the original image produces exactly one warp.
2. Each warp only intersects non-zero elements in the sinogram, equivalently all warps
carry a weight that is greater than zero
vk > 0.
3. Each non-zero element in the sinogram is the linear combination of all the warps
that pass through that point, that is:
Sh,θ =
L
k=1
ckvk
where L is the number of warps that pass through the sinogram element Sh,θ.
4. The sum of all warps is equal to the sum of a single sinogram column, and is also
equal to the sum of all elements in the original image,
¯h
h=1
Sh,θt =
¯k
k=1
vk =
i j
Ai,j,
where ¯k is the total number of warps.
The general expression for the warp curve 6 can easily be derived by the graphical
representation of condition (1).
From figure 1.2 it is derived that
rk = (ic − i)2 + (jc − j)2, (7)
6
Figure 6: Defining the warp curve from the original image
φk = arctan
ic − i
jc − j
, (8)
where (ic, jc) is the center point of the original image and (i, j) the current pixel location.
Once all warp curves have been found for a sinogram it is left to determine their
weights. The warps weights are obtained by setting up and solving the equations provided
by conditions (2 − 4) as non-negative least squares approximation (for our purposes we
let ck = 1 for all k).
The elements of a desired sinogram column Sθ are then obtained by identifying the
positions of all the warps for θ via the warp curves. Condition 3 is then used to sum the
warp weights for each column element, which yields the desired sinogram column.
1.3 The algorithm
The steps needed to implement the sinogram interpolation algorithm are listed as follows:
1. Calculate the original(or maximum image radius) image size.
This corresponds to ¯h
√
2 and is taken to be n = ceil(¯h
√
2). This is done to ensure
we match the sampling rate of the Radon transform, which is equivalent to our
method of edge sampling.
7
2. By making use of equations 7,8 loop through the original image positions
and calculate all the warp phase angles and amplitudes2
.
3. For each warp find all the known sinogram points that the warp curve passes
through. This is done by calculating uk for each known θ of S, and off setting
these points by (N + 1)/2. The sinogram values at these points are expressed as
S = S(N+1)/2−uk(θ),θ for all θ ∈ Θ
with the points ((N + 1)/2 − uk(θ), θ) being called the warp points.
(a) Check that all values of S satisfy condition 2. If so catalog all the
warp points and assign the warp to a valid warp set.
4. Setup the system of of equations Xv = σ corresponding to conditions
3 and, 4. This can be done by looping through the known sinogram S as fol-
lows:
(a) For each sinogram element Sh,θ(t) check that Sh,θ(t) > 0 and that at least
one valid warp passes through the point (h, θ(t)).
(b) Append Sh,θ(t) to σ if previous step holds true.
(c) Simultaneously append a row to the matrix X with a one at column
j if the warp wj passes through the point (h, θ(t)).
Therefore each column of X represents a single valid warp and should be of size ¯sׯk
where ¯s is the number of positive sinogram elements that a warp passes through
3
and ¯k the total number of warps.
5. Solve this system by finding the non-negative least squares approximation
for v and thus obtain the warp values vk.
6. Construct a new sinogram column Sθ by calculating all valid warp points
for the angle θ . An element Sh,θ is found by summing the warp values
vk for all warps that pass within a half pixel radius of (h, θ ).
1.4 Results
References
[1] N. Joshi, R. Szeliski, D.J. Kriegman. “PSF Estimation using Sharp Edge Predic-
tion”, In IEEE Conference on Computer Vision and Pattern Recognition, 2008.
[2] R. Fegus B. Singh, A. Hertzmann, S.T. Roweis, W.T. Freeman. ”Removing Camera
Shake from a Single Photograph”, ACM Transactions on Graphics, 27(3) : 787794,
August 2006.
2
We do not actually recreate the original image but only loop through the desired pixel or rather
image positions.
3
This may possibly be less that the total number of positive non-zero elements in the sinogram.
8
[3] M. Kalke and S. Siltanen , “Sinogram Interpolation Method for Sparse-Angle To-
mography”, SCIRP, Applied Mathematics,pp 423 − 441, 5, 2014.
9

More Related Content

What's hot

2.1. fundamental of computer graphics
2.1. fundamental of computer graphics2.1. fundamental of computer graphics
2.1. fundamental of computer graphicsRatnadeepsinh Jadeja
 
Computer Graphics & linear Algebra
Computer Graphics & linear Algebra Computer Graphics & linear Algebra
Computer Graphics & linear Algebra Xad Kuain
 
2 d transformation
2 d transformation2 d transformation
2 d transformationAnkit Garg
 
DETECTION OF MOVING OBJECT
DETECTION OF MOVING OBJECTDETECTION OF MOVING OBJECT
DETECTION OF MOVING OBJECTAM Publications
 
Matrix transformation
Matrix transformationMatrix transformation
Matrix transformationmstf mstf
 
2D transformation (Computer Graphics)
2D transformation (Computer Graphics)2D transformation (Computer Graphics)
2D transformation (Computer Graphics)Timbal Mayank
 
BCA_Semester-II-Discrete Mathematics_unit-iv Graph theory
BCA_Semester-II-Discrete Mathematics_unit-iv Graph theoryBCA_Semester-II-Discrete Mathematics_unit-iv Graph theory
BCA_Semester-II-Discrete Mathematics_unit-iv Graph theoryRai University
 
Trigonometric functions
Trigonometric functionsTrigonometric functions
Trigonometric functionsmstf mstf
 
Beginning direct3d gameprogrammingmath03_vectors_20160328_jintaeks
Beginning direct3d gameprogrammingmath03_vectors_20160328_jintaeksBeginning direct3d gameprogrammingmath03_vectors_20160328_jintaeks
Beginning direct3d gameprogrammingmath03_vectors_20160328_jintaeksJinTaek Seo
 
Beginning direct3d gameprogrammingmath04_calculus_20160324_jintaeks
Beginning direct3d gameprogrammingmath04_calculus_20160324_jintaeksBeginning direct3d gameprogrammingmath04_calculus_20160324_jintaeks
Beginning direct3d gameprogrammingmath04_calculus_20160324_jintaeksJinTaek Seo
 
Rasterisation of a circle by the bresenham algorithm
Rasterisation of a circle by the bresenham algorithmRasterisation of a circle by the bresenham algorithm
Rasterisation of a circle by the bresenham algorithmKALAIRANJANI21
 
A mid point ellipse drawing algorithm on a hexagonal grid
A mid  point ellipse drawing algorithm on a hexagonal gridA mid  point ellipse drawing algorithm on a hexagonal grid
A mid point ellipse drawing algorithm on a hexagonal gridS M K
 
3D Curve Project
3D Curve Project3D Curve Project
3D Curve Projectgraphitech
 
Lesson 10 techniques of integration
Lesson 10 techniques of integrationLesson 10 techniques of integration
Lesson 10 techniques of integrationLawrence De Vera
 
2 d geometric transformations
2 d geometric transformations2 d geometric transformations
2 d geometric transformationsMohd Arif
 
Mesh Processing Course : Active Contours
Mesh Processing Course : Active ContoursMesh Processing Course : Active Contours
Mesh Processing Course : Active ContoursGabriel Peyré
 

What's hot (19)

2.1. fundamental of computer graphics
2.1. fundamental of computer graphics2.1. fundamental of computer graphics
2.1. fundamental of computer graphics
 
Computer Graphics & linear Algebra
Computer Graphics & linear Algebra Computer Graphics & linear Algebra
Computer Graphics & linear Algebra
 
2 d transformation
2 d transformation2 d transformation
2 d transformation
 
DETECTION OF MOVING OBJECT
DETECTION OF MOVING OBJECTDETECTION OF MOVING OBJECT
DETECTION OF MOVING OBJECT
 
Matrix transformation
Matrix transformationMatrix transformation
Matrix transformation
 
2D transformation (Computer Graphics)
2D transformation (Computer Graphics)2D transformation (Computer Graphics)
2D transformation (Computer Graphics)
 
BCA_Semester-II-Discrete Mathematics_unit-iv Graph theory
BCA_Semester-II-Discrete Mathematics_unit-iv Graph theoryBCA_Semester-II-Discrete Mathematics_unit-iv Graph theory
BCA_Semester-II-Discrete Mathematics_unit-iv Graph theory
 
B spline
B splineB spline
B spline
 
Trigonometric functions
Trigonometric functionsTrigonometric functions
Trigonometric functions
 
Beginning direct3d gameprogrammingmath03_vectors_20160328_jintaeks
Beginning direct3d gameprogrammingmath03_vectors_20160328_jintaeksBeginning direct3d gameprogrammingmath03_vectors_20160328_jintaeks
Beginning direct3d gameprogrammingmath03_vectors_20160328_jintaeks
 
Beginning direct3d gameprogrammingmath04_calculus_20160324_jintaeks
Beginning direct3d gameprogrammingmath04_calculus_20160324_jintaeksBeginning direct3d gameprogrammingmath04_calculus_20160324_jintaeks
Beginning direct3d gameprogrammingmath04_calculus_20160324_jintaeks
 
Rasterisation of a circle by the bresenham algorithm
Rasterisation of a circle by the bresenham algorithmRasterisation of a circle by the bresenham algorithm
Rasterisation of a circle by the bresenham algorithm
 
A mid point ellipse drawing algorithm on a hexagonal grid
A mid  point ellipse drawing algorithm on a hexagonal gridA mid  point ellipse drawing algorithm on a hexagonal grid
A mid point ellipse drawing algorithm on a hexagonal grid
 
Chapter 4 Integration
Chapter 4  IntegrationChapter 4  Integration
Chapter 4 Integration
 
3D Curve Project
3D Curve Project3D Curve Project
3D Curve Project
 
Lesson 10 techniques of integration
Lesson 10 techniques of integrationLesson 10 techniques of integration
Lesson 10 techniques of integration
 
2 d geometric transformations
2 d geometric transformations2 d geometric transformations
2 d geometric transformations
 
Differential calculus
Differential calculusDifferential calculus
Differential calculus
 
Mesh Processing Course : Active Contours
Mesh Processing Course : Active ContoursMesh Processing Course : Active Contours
Mesh Processing Course : Active Contours
 

Similar to SinogramReconstruction

TAO Fayan_X-Ray and MIP volume rendering
TAO Fayan_X-Ray and MIP volume renderingTAO Fayan_X-Ray and MIP volume rendering
TAO Fayan_X-Ray and MIP volume renderingFayan TAO
 
Plotting position and velocity
Plotting position and velocityPlotting position and velocity
Plotting position and velocityabidraza88
 
Journey to structure from motion
Journey to structure from motionJourney to structure from motion
Journey to structure from motionJa-Keoung Koo
 
MA101-Lecturenotes(2019-20)-Module 13 (1).pdf
MA101-Lecturenotes(2019-20)-Module 13 (1).pdfMA101-Lecturenotes(2019-20)-Module 13 (1).pdf
MA101-Lecturenotes(2019-20)-Module 13 (1).pdfvasusingh34
 
MA101-Lecturenotes(2019-20)-Module 13 (1).pdf
MA101-Lecturenotes(2019-20)-Module 13 (1).pdfMA101-Lecturenotes(2019-20)-Module 13 (1).pdf
MA101-Lecturenotes(2019-20)-Module 13 (1).pdfvasusingh34
 
Solution set 3
Solution set 3Solution set 3
Solution set 3慧环 赵
 
Consider a l-D elastic bar problem defined on [0, 4]. The domain .pdf
Consider a l-D elastic bar problem defined on [0, 4]. The domain .pdfConsider a l-D elastic bar problem defined on [0, 4]. The domain .pdf
Consider a l-D elastic bar problem defined on [0, 4]. The domain .pdfferoz544
 
Graphing Trig Functions-Tangent and Cotangent.ppt
Graphing Trig Functions-Tangent and Cotangent.pptGraphing Trig Functions-Tangent and Cotangent.ppt
Graphing Trig Functions-Tangent and Cotangent.pptReyRoluna1
 
Beginning direct3d gameprogrammingmath06_transformations_20161019_jintaeks
Beginning direct3d gameprogrammingmath06_transformations_20161019_jintaeksBeginning direct3d gameprogrammingmath06_transformations_20161019_jintaeks
Beginning direct3d gameprogrammingmath06_transformations_20161019_jintaeksJinTaek Seo
 
Computer Graphics in Java and Scala - Part 1
Computer Graphics in Java and Scala - Part 1Computer Graphics in Java and Scala - Part 1
Computer Graphics in Java and Scala - Part 1Philip Schwarz
 

Similar to SinogramReconstruction (20)

Digtial Image Processing Q@A
Digtial Image Processing Q@ADigtial Image Processing Q@A
Digtial Image Processing Q@A
 
TAO Fayan_X-Ray and MIP volume rendering
TAO Fayan_X-Ray and MIP volume renderingTAO Fayan_X-Ray and MIP volume rendering
TAO Fayan_X-Ray and MIP volume rendering
 
1533 game mathematics
1533 game mathematics1533 game mathematics
1533 game mathematics
 
Curves in space
Curves in spaceCurves in space
Curves in space
 
Plotting position and velocity
Plotting position and velocityPlotting position and velocity
Plotting position and velocity
 
Ch07 6
Ch07 6Ch07 6
Ch07 6
 
Journey to structure from motion
Journey to structure from motionJourney to structure from motion
Journey to structure from motion
 
2 d transformations
2 d transformations2 d transformations
2 d transformations
 
MA101-Lecturenotes(2019-20)-Module 13 (1).pdf
MA101-Lecturenotes(2019-20)-Module 13 (1).pdfMA101-Lecturenotes(2019-20)-Module 13 (1).pdf
MA101-Lecturenotes(2019-20)-Module 13 (1).pdf
 
MA101-Lecturenotes(2019-20)-Module 13 (1).pdf
MA101-Lecturenotes(2019-20)-Module 13 (1).pdfMA101-Lecturenotes(2019-20)-Module 13 (1).pdf
MA101-Lecturenotes(2019-20)-Module 13 (1).pdf
 
Solution set 3
Solution set 3Solution set 3
Solution set 3
 
FEM 3 TwoD CST.ppt
FEM 3 TwoD CST.pptFEM 3 TwoD CST.ppt
FEM 3 TwoD CST.ppt
 
Consider a l-D elastic bar problem defined on [0, 4]. The domain .pdf
Consider a l-D elastic bar problem defined on [0, 4]. The domain .pdfConsider a l-D elastic bar problem defined on [0, 4]. The domain .pdf
Consider a l-D elastic bar problem defined on [0, 4]. The domain .pdf
 
Graphing Trig Functions-Tangent and Cotangent.ppt
Graphing Trig Functions-Tangent and Cotangent.pptGraphing Trig Functions-Tangent and Cotangent.ppt
Graphing Trig Functions-Tangent and Cotangent.ppt
 
1525 equations of lines in space
1525 equations of lines in space1525 equations of lines in space
1525 equations of lines in space
 
Report
ReportReport
Report
 
Vectors and Kinematics
Vectors and KinematicsVectors and Kinematics
Vectors and Kinematics
 
Beginning direct3d gameprogrammingmath06_transformations_20161019_jintaeks
Beginning direct3d gameprogrammingmath06_transformations_20161019_jintaeksBeginning direct3d gameprogrammingmath06_transformations_20161019_jintaeks
Beginning direct3d gameprogrammingmath06_transformations_20161019_jintaeks
 
Computer Graphics in Java and Scala - Part 1
Computer Graphics in Java and Scala - Part 1Computer Graphics in Java and Scala - Part 1
Computer Graphics in Java and Scala - Part 1
 
Test
TestTest
Test
 

SinogramReconstruction

  • 1. Notation For the section on sinogram interpolation the notation scheme that follows will be used. This notation is used to simplify mathematical expressions given inn the following section and the explanations thereof. Continuous indices: Notation Description Range x, y Position in a continuous image. x, y ∈ [−∞, ∞] θ Integration angle for the forward radon transform. θ ∈ [0, 2π] r, φ Position in a continuous image in polar coordinates. φ ∈ [0, 2π], r ∈ [0, ∞] Discrete indices: Notation Description Range i, j Pixel positions in a discrete image. i = 1, . . . , n, j = 1, . . . , m θt Index of the t-th Sinogram column at angle θt = t∆θ. θt ∈ [0, 2π], t = 1, . . . , ¯θ rk, φk Pixel positions in a discrete image in polar coordinates. φ ∈ [0, 2π], r ∈ [0, 1/2n2 + 1/2m2] ic, jc Image center. i = 1 2 n, j = 1 2 m h Index for sinogram row. h = −1 2 ¯h, . . . , 1 2 ¯h. Clarification of values: Value Description Refer to A The original image in cartesian coordinates. V The original image in polar coordinates. S The sinogram of A or V . W The set of all warps. n, m Original image size. ¯h Number of sinogram rows. ¯θ Number of sinogram columns. ¯k Number of warps found in a known sinogram. ¯L Number of warps that pass through a known sinogram element. 1
  • 2. Sinogram interpolation J. Engelbrecht, University of Stellenbosch 1 Sinogram interpolation A technique for improving the obtained blur kernel sinogram is presented here. Methods developed by [3] for sinogram interpolation are used as a basis for the work that follows. Figure 1: An image and its sinogram 1.1 Sinograms and the forward Radon transform 1.1.1 Sinograms A sinogram is a matrix S with column vectors sθ such that S = [sθ1 , sθ2 , . . . , sθ¯θ ], of size ¯h × ¯θ with corresponding angular vector Θ = [θ1, θ2, . . . , θ¯θ]. Each column sθ is the Radon projection of an image A(x, y) referred top as the original image at the angle θ under the Radon transform where θt is the angle corresponding to the t-th column of S with t ∈ [1, . . . , ¯θ]. 2
  • 3. 1.1.2 The forward transform By the definition the forward Radon transform a continuous representation of sinogram column sθt can be expressed as the line integral sθ(ˆh) = ∞ −∞ ∞ −∞ A(x, y)δ(ˆh − x cos(θ) − y sin(θ))dxdy (1) over the line ˆh = x cos(θ) + y sin(θ)1 . We aim to describe (1) using the polar coordinate Figure 2: The forward Radon transform transformation: x = r cos(φ), y = r sin(φ) where dxdy = rdrdφ. Applying this transformation to the original image A(x, y) according to equation (1) it is shown that V (r, φ) = A(x, y), sθ(ˆh) = ∞ −∞ ∞ −∞ V (r, φ)δ(ˆh − r cos(φ) cos(θ) − r sin(φ) sin(θ))rdrdφ (2) = ∞ −∞ ∞ −∞ V (r, φ)δ(ˆh − r cos(φ + θ))rdrdφ. (3) here the image A(x, y) is relabel as the polar coordinate image V (r, θ). The last expression represents the integral over the line ˆh = r cos(φ + θ). 1 We choose to use this definition of the line integral since here δ has the geometric interpretation of allowing only points that fall on the line ˆh to be include in the summation for sh,θ(ˆh). In the discrete equation δ corresponds to the chosen method of image sampling, this is discussed further in section ADDDD SECTION 3
  • 4. This is desretized by letting xj = j∆x for j = 1, . . . , m, yi = i∆y for i = 1, . . . , n, Ai,j = A(xj, yi), with θt = t∆θ for t = 1, . . . , ¯θ. In practice when discretizing (1) a sinogram element is expressed as sθt (ˆh) = i j Ai,j∆(ˆh − xj cos(θt) − yi sin(θt)), (4) which simply means that each element of a sinogram Sh,θt is the discrete summation over all the pixel values along the line ˆh = x cos(θt) + y sin(θt). Here ∆(·) is a “selection function” corresponding to the users choice of discrete sampling method over continuous line ˆh. Note when dealing with the polar coordinates a different indexing method is used. Figure 3: Interpretation of summation for discrete forward transform The positions are indexed sequentially since there is always equal number of angles φk and radii rk. Using equation (3) and, rk = k∆r, and φk = k∆φ for k = 1, . . . , (m · n), 4
  • 5. a sinogram element is expressed as sθt (ˆh) = k V (rk, φk)∆(ˆh − rk cos(φk + θt))rk. (5) This is equivalent to equation (4) since the summation is still occurring for point along ˆh. However the points along ˆh are now expressed in polar coordinates (r, φ) by what is called the pixel position curve uk = rk cos(φk + θt). This equation corresponds to a cosine curve that passes thought the sinogram for each pixel in the image A. This implies that the sinogram of an image can be calculate by finding the position curves for all the pixels in the image and then performing a summation over the pixel values at the points where the curves intersect. Figure 4: An image and its sinogram 1.2 Warps A warp wk is a weight carrying cosine wave that passes through only strictly positive elements in a sinogram. wk = {vk, uk(θ)} , wk ∈ W where vk is the warp value. uk(θ) = rk cos(θ + φk) (6) is referred to as a warp curve with rk the warp amplitude and φk the warp phase angle. 5
  • 6. Figure 5: Warps passing through a sinogram For such a curve to be defined as a warp, the original image and its given possibly sparse sinogram, as well as each curve that passes through that sinogram must satisfies the following warp conditions: 1. Each non-zero pixel in the original image produces exactly one warp. 2. Each warp only intersects non-zero elements in the sinogram, equivalently all warps carry a weight that is greater than zero vk > 0. 3. Each non-zero element in the sinogram is the linear combination of all the warps that pass through that point, that is: Sh,θ = L k=1 ckvk where L is the number of warps that pass through the sinogram element Sh,θ. 4. The sum of all warps is equal to the sum of a single sinogram column, and is also equal to the sum of all elements in the original image, ¯h h=1 Sh,θt = ¯k k=1 vk = i j Ai,j, where ¯k is the total number of warps. The general expression for the warp curve 6 can easily be derived by the graphical representation of condition (1). From figure 1.2 it is derived that rk = (ic − i)2 + (jc − j)2, (7) 6
  • 7. Figure 6: Defining the warp curve from the original image φk = arctan ic − i jc − j , (8) where (ic, jc) is the center point of the original image and (i, j) the current pixel location. Once all warp curves have been found for a sinogram it is left to determine their weights. The warps weights are obtained by setting up and solving the equations provided by conditions (2 − 4) as non-negative least squares approximation (for our purposes we let ck = 1 for all k). The elements of a desired sinogram column Sθ are then obtained by identifying the positions of all the warps for θ via the warp curves. Condition 3 is then used to sum the warp weights for each column element, which yields the desired sinogram column. 1.3 The algorithm The steps needed to implement the sinogram interpolation algorithm are listed as follows: 1. Calculate the original(or maximum image radius) image size. This corresponds to ¯h √ 2 and is taken to be n = ceil(¯h √ 2). This is done to ensure we match the sampling rate of the Radon transform, which is equivalent to our method of edge sampling. 7
  • 8. 2. By making use of equations 7,8 loop through the original image positions and calculate all the warp phase angles and amplitudes2 . 3. For each warp find all the known sinogram points that the warp curve passes through. This is done by calculating uk for each known θ of S, and off setting these points by (N + 1)/2. The sinogram values at these points are expressed as S = S(N+1)/2−uk(θ),θ for all θ ∈ Θ with the points ((N + 1)/2 − uk(θ), θ) being called the warp points. (a) Check that all values of S satisfy condition 2. If so catalog all the warp points and assign the warp to a valid warp set. 4. Setup the system of of equations Xv = σ corresponding to conditions 3 and, 4. This can be done by looping through the known sinogram S as fol- lows: (a) For each sinogram element Sh,θ(t) check that Sh,θ(t) > 0 and that at least one valid warp passes through the point (h, θ(t)). (b) Append Sh,θ(t) to σ if previous step holds true. (c) Simultaneously append a row to the matrix X with a one at column j if the warp wj passes through the point (h, θ(t)). Therefore each column of X represents a single valid warp and should be of size ¯sׯk where ¯s is the number of positive sinogram elements that a warp passes through 3 and ¯k the total number of warps. 5. Solve this system by finding the non-negative least squares approximation for v and thus obtain the warp values vk. 6. Construct a new sinogram column Sθ by calculating all valid warp points for the angle θ . An element Sh,θ is found by summing the warp values vk for all warps that pass within a half pixel radius of (h, θ ). 1.4 Results References [1] N. Joshi, R. Szeliski, D.J. Kriegman. “PSF Estimation using Sharp Edge Predic- tion”, In IEEE Conference on Computer Vision and Pattern Recognition, 2008. [2] R. Fegus B. Singh, A. Hertzmann, S.T. Roweis, W.T. Freeman. ”Removing Camera Shake from a Single Photograph”, ACM Transactions on Graphics, 27(3) : 787794, August 2006. 2 We do not actually recreate the original image but only loop through the desired pixel or rather image positions. 3 This may possibly be less that the total number of positive non-zero elements in the sinogram. 8
  • 9. [3] M. Kalke and S. Siltanen , “Sinogram Interpolation Method for Sparse-Angle To- mography”, SCIRP, Applied Mathematics,pp 423 − 441, 5, 2014. 9