Skip to content

Commit ffac160

Browse files
committed
Documentation update
Signed-off-by: Nicola VIGANO <[email protected]>
1 parent e913702 commit ffac160

File tree

13 files changed

+190
-126
lines changed

13 files changed

+190
-126
lines changed

doc_sources/tutorial.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ The same goes for the parameter `upper_limit`.
141141

142142
## Attenuation correction
143143

144-
Here, we describe how to do attenuation correction.
144+
We implement the attenuation correction method described in [2].
145145

146146
## Data terms and regularization
147147

@@ -172,4 +172,7 @@ cross-validation, or the elbow method.
172172

173173
[1] Pelt, D. M., & Batenburg, K. J. (2014). Improving filtered backprojection
174174
reconstruction by data-dependent filtering. Image Processing, IEEE
175-
Transactions on, 23(11), 4750-4762.
175+
Transactions on, 23(11), 4750-4762.
176+
[2] N. Viganò and V. A. Solé, "Physically corrected forward operators for
177+
induced emission tomography: a simulation study," Meas. Sci. Technol., no.
178+
Advanced X-Ray Tomography, pp. 1–26, Nov. 2017.

docs/_modules/corrct/processing/post.html

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ <h1>Source code for corrct.processing.post</h1><div class="highlight"><pre>
9090
<span class="kn">from</span> <span class="nn">matplotlib.figure</span> <span class="kn">import</span> <span class="n">Figure</span>
9191
<span class="kn">from</span> <span class="nn">matplotlib.axes._axes</span> <span class="kn">import</span> <span class="n">Axes</span>
9292

93+
<span class="kn">from</span> <span class="nn">tqdm.auto</span> <span class="kn">import</span> <span class="n">tqdm</span>
94+
9395

9496
<span class="n">eps</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">finfo</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">float32</span><span class="p">)</span><span class="o">.</span><span class="n">eps</span>
9597

@@ -242,6 +244,7 @@ <h1>Source code for corrct.processing.post</h1><div class="highlight"><pre>
242244
<span class="k">if</span> <span class="n">smooth</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">smooth</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
243245
<span class="n">win</span> <span class="o">=</span> <span class="n">sp</span><span class="o">.</span><span class="n">signal</span><span class="o">.</span><span class="n">windows</span><span class="o">.</span><span class="n">hann</span><span class="p">(</span><span class="n">smooth</span><span class="p">)</span>
244246
<span class="n">win</span> <span class="o">/=</span> <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">win</span><span class="p">)</span>
247+
<span class="n">win</span> <span class="o">=</span> <span class="n">win</span><span class="o">.</span><span class="n">reshape</span><span class="p">([</span><span class="o">*</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="p">(</span><span class="n">frc</span><span class="o">.</span><span class="n">ndim</span> <span class="o">-</span> <span class="mi">1</span><span class="p">),</span> <span class="o">-</span><span class="mi">1</span><span class="p">])</span>
245248
<span class="n">frc</span> <span class="o">=</span> <span class="n">sp</span><span class="o">.</span><span class="n">ndimage</span><span class="o">.</span><span class="n">convolve</span><span class="p">(</span><span class="n">frc</span><span class="p">,</span> <span class="n">win</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s2">&quot;nearest&quot;</span><span class="p">)</span>
246249

247250
<span class="k">return</span> <span class="n">frc</span><span class="p">[</span><span class="o">...</span><span class="p">,</span> <span class="p">:</span><span class="n">cut_off</span><span class="p">],</span> <span class="n">Thb</span><span class="p">[</span><span class="o">...</span><span class="p">,</span> <span class="p">:</span><span class="n">cut_off</span><span class="p">]</span></div>
@@ -253,6 +256,8 @@ <h1>Source code for corrct.processing.post</h1><div class="highlight"><pre>
253256
<span class="n">title</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
254257
<span class="n">smooth</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="mi">5</span><span class="p">,</span>
255258
<span class="n">snrt</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">0.2071</span><span class="p">,</span>
259+
<span class="n">axes</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Sequence</span><span class="p">[</span><span class="nb">int</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
260+
<span class="n">verbose</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
256261
<span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Tuple</span><span class="p">[</span><span class="n">Figure</span><span class="p">,</span> <span class="n">Axes</span><span class="p">]:</span>
257262
<span class="sd">&quot;&quot;&quot;Compute and plot the FSCs / FRCs of some volumes.</span>
258263

@@ -268,12 +273,21 @@ <h1>Source code for corrct.processing.post</h1><div class="highlight"><pre>
268273
<span class="sd"> The size of the smoothing window for the computed curves, by default 5.</span>
269274
<span class="sd"> snrt : float, optional</span>
270275
<span class="sd"> The SNR of the T curve, by default 0.2071 - as per half-dataset SNR.</span>
276+
<span class="sd"> axes : Sequence[int] | None, optional</span>
277+
<span class="sd"> The axes along which we want to compute the FRC. The unused axes will be</span>
278+
<span class="sd"> averaged. The default is None.</span>
279+
<span class="sd"> verbose : bool, optional</span>
280+
<span class="sd"> Whether to display verbose output, by default False.</span>
271281
<span class="sd"> &quot;&quot;&quot;</span>
272282
<span class="n">frcs</span> <span class="o">=</span> <span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([])]</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">volume_pairs</span><span class="p">)</span>
273283
<span class="n">xps</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">Optional</span><span class="p">[</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">float</span><span class="p">,</span> <span class="nb">float</span><span class="p">]]]</span> <span class="o">=</span> <span class="p">[(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">)]</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">volume_pairs</span><span class="p">)</span>
274284

275-
<span class="k">for</span> <span class="n">ii</span><span class="p">,</span> <span class="n">pair</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">volume_pairs</span><span class="p">):</span>
276-
<span class="n">frcs</span><span class="p">[</span><span class="n">ii</span><span class="p">],</span> <span class="n">T</span> <span class="o">=</span> <span class="n">frc</span><span class="p">(</span><span class="n">pair</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">pair</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">snrt</span><span class="o">=</span><span class="n">snrt</span><span class="p">,</span> <span class="n">smooth</span><span class="o">=</span><span class="n">smooth</span><span class="p">)</span>
285+
<span class="k">for</span> <span class="n">ii</span><span class="p">,</span> <span class="n">pair</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">tqdm</span><span class="p">(</span><span class="n">volume_pairs</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;Computing FRCs&quot;</span><span class="p">,</span> <span class="n">disable</span><span class="o">=</span><span class="ow">not</span> <span class="n">verbose</span><span class="p">)):</span>
286+
<span class="n">frcs</span><span class="p">[</span><span class="n">ii</span><span class="p">],</span> <span class="n">T</span> <span class="o">=</span> <span class="n">frc</span><span class="p">(</span><span class="n">pair</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">pair</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">snrt</span><span class="o">=</span><span class="n">snrt</span><span class="p">,</span> <span class="n">smooth</span><span class="o">=</span><span class="n">smooth</span><span class="p">,</span> <span class="n">axes</span><span class="o">=</span><span class="n">axes</span><span class="p">)</span>
287+
<span class="k">if</span> <span class="n">T</span><span class="o">.</span><span class="n">ndim</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
288+
<span class="n">reduce_axes</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">T</span><span class="o">.</span><span class="n">ndim</span> <span class="o">-</span> <span class="mi">1</span><span class="p">))</span>
289+
<span class="n">frcs</span><span class="p">[</span><span class="n">ii</span><span class="p">]</span> <span class="o">=</span> <span class="n">frcs</span><span class="p">[</span><span class="n">ii</span><span class="p">]</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="n">reduce_axes</span><span class="p">)</span>
290+
<span class="n">T</span> <span class="o">=</span> <span class="n">T</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="n">reduce_axes</span><span class="p">)</span>
277291
<span class="n">xps</span><span class="p">[</span><span class="n">ii</span><span class="p">]</span> <span class="o">=</span> <span class="n">lines_intersection</span><span class="p">(</span><span class="n">frcs</span><span class="p">[</span><span class="n">ii</span><span class="p">],</span> <span class="n">T</span><span class="p">,</span> <span class="n">x_lims</span><span class="o">=</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="kc">None</span><span class="p">))</span>
278292

279293
<span class="n">nyquist</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">frcs</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>

docs/_sources/changelog.md.txt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,19 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7-
[Unreleased]: https://www.github.com/cicwi/corrct/compare/v0.6.0...develop
7+
[Unreleased]: https://www.github.com/cicwi/corrct/compare/v0.7.0...develop
8+
9+
## 0.7.0 - 2022-10-11
10+
### Added
11+
- Wide API refactoring: renamed various modules, and moved processing routines to sub-package.
12+
- Initial draft of tutorial. More documentation on the way.
13+
- Line intersection computation.
14+
- Plotting of FRCs.
15+
- Tests: initial support for projectors.
16+
### Fixed
17+
- Typo in function name.
18+
- Simplified examples 01 and 02.
19+
- FRC/FSC axes selection.
820

921
## 0.6.0 - 2022-09-08
1022
### Added

docs/_sources/tutorial.md.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ The same goes for the parameter `upper_limit`.
141141

142142
## Attenuation correction
143143

144-
Here, we describe how to do attenuation correction.
144+
We implement the attenuation correction method described in [2].
145145

146146
## Data terms and regularization
147147

@@ -172,4 +172,7 @@ cross-validation, or the elbow method.
172172

173173
[1] Pelt, D. M., & Batenburg, K. J. (2014). Improving filtered backprojection
174174
reconstruction by data-dependent filtering. Image Processing, IEEE
175-
Transactions on, 23(11), 4750-4762.
175+
Transactions on, 23(11), 4750-4762.
176+
[2] N. Viganò and V. A. Solé, "Physically corrected forward operators for
177+
induced emission tomography: a simulation study," Meas. Sci. Technol., no.
178+
Advanced X-Ray Tomography, pp. 1–26, Nov. 2017.

0 commit comments

Comments
 (0)