Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
pit
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Erik Strand
pit
Commits
68e5a601
Commit
68e5a601
authored
6 years ago
by
Erik Strand
Browse files
Options
Downloads
Patches
Plain Diff
Add filtered back projection results
parent
3ad32bbd
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
assets/img/project_fbp_reconstruction.png
+0
-0
0 additions, 0 deletions
assets/img/project_fbp_reconstruction.png
project.md
+18
-4
18 additions, 4 deletions
project.md
with
18 additions
and
4 deletions
assets/img/project_fbp_reconstruction.png
0 → 100644
+
0
−
0
View file @
68e5a601
259 KiB
This diff is collapsed.
Click to expand it.
project.md
+
18
−
4
View file @
68e5a601
...
@@ -32,6 +32,7 @@ projections at different angles.
...
@@ -32,6 +32,7 @@ projections at different angles.
## Fourier Reconstruction
## Fourier Reconstruction
### Fourier Slice Theorem
### Fourier Slice Theorem
Let $$f :
\m
athbb{R}^2
\r
ightarrow
\m
athbb{R}$$ be a density function. If we map density to
Let $$f :
\m
athbb{R}^2
\r
ightarrow
\m
athbb{R}$$ be a density function. If we map density to
...
@@ -111,7 +112,7 @@ algorithms out there that come closer to the theoretically ideal
...
@@ -111,7 +112,7 @@ algorithms out there that come closer to the theoretically ideal
The popular
[
gridrec
](
https://www.ncbi.nlm.nih.gov/pubmed/23093766
)
method is one.
The popular
[
gridrec
](
https://www.ncbi.nlm.nih.gov/pubmed/23093766
)
method is one.
###
Implementation
###
Results
I used
[
FFTW
](
http://www.fftw.org/
)
to compute Fourier transforms. It's written in C and is very
I used
[
FFTW
](
http://www.fftw.org/
)
to compute Fourier transforms. It's written in C and is very
[
fast
](
http://www.fftw.org/benchfft/
)
. I implemented my own polar resampling routine. It uses a
[
fast
](
http://www.fftw.org/benchfft/
)
. I implemented my own polar resampling routine. It uses a
...
@@ -148,6 +149,7 @@ It would be nice if we could avoid the interpolation required for Fourier recons
...
@@ -148,6 +149,7 @@ It would be nice if we could avoid the interpolation required for Fourier recons
simplest way of doing so, and still the most popular method of performing image reconstruction, is
simplest way of doing so, and still the most popular method of performing image reconstruction, is
called filtered back projection.
called filtered back projection.
### Theory
### Theory
Let's hop back to the continuous theory for a moment. The Fourier reconstruction technique is based
Let's hop back to the continuous theory for a moment. The Fourier reconstruction technique is based
...
@@ -189,6 +191,11 @@ $$
...
@@ -189,6 +191,11 @@ $$
f(x, y) =
\i
nt_0^
\p
i
\m
athcal{F}^{-1}
[
q_\theta
](
x
\c
os
\t
heta + y
\s
in
\t
heta)
\m
athrm{d}
\t
heta
f(x, y) =
\i
nt_0^
\p
i
\m
athcal{F}^{-1}
[
q_\theta
](
x
\c
os
\t
heta + y
\s
in
\t
heta)
\m
athrm{d}
\t
heta
$$
$$
Since multiplication in the frequency domain is equivalent to convolution in the spatial domain,
$$
\m
athcal{F}^{-1}[q_
\t
heta]$$ is simply a filtered version of $$p_
\t
heta$$. Hence the name filtered
back projection.
### Discretization
### Discretization
We'll replace the continuous Fourier transforms with DFTs as before.
We'll replace the continuous Fourier transforms with DFTs as before.
...
@@ -210,6 +217,13 @@ them directly for quadrature. For $$r$$, on the other hand, the regular samples
...
@@ -210,6 +217,13 @@ them directly for quadrature. For $$r$$, on the other hand, the regular samples
line up with the values $$x
\c
os
\t
heta + y
\s
in
\t
heta$$ that we want. So we'll still have to do
line up with the values $$x
\c
os
\t
heta + y
\s
in
\t
heta$$ that we want. So we'll still have to do
some interpolation. But now it's a simple 1D interpolation problem that's much easier to do without
some interpolation. But now it's a simple 1D interpolation problem that's much easier to do without
introducing as much error. In particular, we only have to do interpolation in the spatial domain, so
introducing as much error. In particular, we only have to do interpolation in the spatial domain, so
errors will only accumulate locally.
[
Lanczos
errors will only accumulate locally.
resampling
](
https://en.wikipedia.org/wiki/Lanczos_resampling
)
would probably be the best, but I'll
just use Catmull-Rom again since I already have it implemented.
### Results
I again use
[
FFTW
](
http://www.fftw.org/
)
for Fourier transforms. For interpolation I just take the
sample to the left of the desired location, and for integration I just use a left Riemann sum. Even
with these lazy techniques, the reconstruction looks quite good.

This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment