1
|
|
|
from savu.plugins.plugin_tools import PluginTools |
2
|
|
|
|
3
|
|
|
class Centering360Tools(PluginTools): |
4
|
|
|
"""A plugin to calculate the centre of rotation |
5
|
|
|
""" |
6
|
|
|
def define_parameters(self): |
7
|
|
|
""" |
8
|
|
|
preview: |
9
|
|
|
visibility: basic |
10
|
|
|
dtype: preview |
11
|
|
|
description: A slice list of required frames (sinograms) to use in |
12
|
|
|
the calculation of the centre of rotation (this will not reduce |
13
|
|
|
the data size for subsequent plugins). |
14
|
|
|
default: '[]' |
15
|
|
|
example: 'The typical three dimensional data structure is |
16
|
|
|
[angles, detY, detZ], e.g. for sinogram choose [:,sliceNo,:] |
17
|
|
|
[angles, detZ, detY]. If the data is four dimensional, include |
18
|
|
|
a time parameter.' |
19
|
|
|
win_width: |
20
|
|
|
visibility: basic |
21
|
|
|
dtype: int |
22
|
|
|
description: Width of window used for finding the overlap area |
23
|
|
|
default: 100 |
24
|
|
|
side: |
25
|
|
|
visibility: basic |
26
|
|
|
dtype: [None,int] |
27
|
|
|
description: Overlap size. "None" corresponding to fully automated |
28
|
|
|
determination. "0" corresponding to the left side. |
29
|
|
|
"1" corresponding to the right side. |
30
|
|
|
default: None |
31
|
|
|
options: [None, 1, 0] |
32
|
|
|
denoise: |
33
|
|
|
visibility: intermediate |
34
|
|
|
dtype: bool |
35
|
|
|
description: Apply the gaussian filter if True |
36
|
|
|
default: True |
37
|
|
|
norm: |
38
|
|
|
visibility: intermediate |
39
|
|
|
dtype: bool |
40
|
|
|
description: Apply the normalisation if True |
41
|
|
|
default: True |
42
|
|
|
use_overlap: |
43
|
|
|
visibility: intermediate |
44
|
|
|
dtype: bool |
45
|
|
|
description: Use the combination of images in the overlap area for calculating |
46
|
|
|
correlation coefficients if True. |
47
|
|
|
default: True |
48
|
|
|
|
49
|
|
|
|
50
|
|
|
broadcast_method: |
51
|
|
|
visibility: intermediate |
52
|
|
|
dtype: str |
53
|
|
|
options: [median, mean, nearest, linear_fit] |
54
|
|
|
description: |
55
|
|
|
summary: Method of broadcasting centre values calculated |
56
|
|
|
from preview slices to full dataset. |
57
|
|
|
options: |
58
|
|
|
median: |
59
|
|
|
mean: |
60
|
|
|
nearest: |
61
|
|
|
linear_fit: |
62
|
|
|
default: median |
63
|
|
|
datasets_to_populate: |
64
|
|
|
visibility: intermediate |
65
|
|
|
dtype: [list[],list[str]] |
66
|
|
|
description: A list of datasets which require this information |
67
|
|
|
default: [] |
68
|
|
|
out_datasets: |
69
|
|
|
visibility: datasets |
70
|
|
|
dtype: [list[],list[str]] |
71
|
|
|
description: The default names |
72
|
|
|
default: "['cor_preview', 'cor_broadcast']" |
73
|
|
|
|
74
|
|
|
|
75
|
|
|
""" |
76
|
|
|
|
77
|
|
|
def citation(self): |
78
|
|
|
""" |
79
|
|
|
The center of rotation was calculated automatically using the method described in this work |
80
|
|
|
bibtex: |
81
|
|
|
@article{Vo:21, |
82
|
|
|
author = {Nghia T. Vo and Robert C. Atwood and Michael Drakopoulos and Thomas Connolley}, |
83
|
|
|
journal = {Opt. Express}, |
84
|
|
|
keywords = {Digital image processing; Fluorescence tomography; Image processing; Image registration; Phase contrast; Phase retrieval}, |
85
|
|
|
number = {12}, |
86
|
|
|
pages = {17849--17874}, |
87
|
|
|
publisher = {OSA}, |
88
|
|
|
title = {Data processing methods and data acquisition for samples larger than the field of view in parallel-beam tomography}, |
89
|
|
|
volume = {29}, |
90
|
|
|
month = {Jun}, |
91
|
|
|
year = {2021}, |
92
|
|
|
url = {http://www.osapublishing.org/oe/abstract.cfm?URI=oe-29-12-17849}, |
93
|
|
|
doi = {10.1364/OE.418448}, |
94
|
|
|
abstract = {Parallel-beam tomography systems at synchrotron facilities have limited field of view (FOV) determined by the available beam size and detector system coverage. Scanning the full size of samples bigger than the FOV requires various data acquisition schemes such as grid scan, 360-degree scan with offset center-of-rotation (COR), helical scan, or combinations of these schemes. Though straightforward to implement, these scanning techniques have not often been used due to the lack of software and methods to process such types of data in an easy and automated fashion. The ease of use and automation is critical at synchrotron facilities where using visual inspection in data processing steps such as image stitching, COR determination, or helical data conversion is impractical due to the large size of datasets. Here, we provide methods and their implementations in a Python package, named Algotom, for not only processing such data types but also with the highest quality possible. The efficiency and ease of use of these tools can help to extend applications of parallel-beam tomography systems.}, |
95
|
|
|
} |
96
|
|
|
|
97
|
|
|
endnote: |
98
|
|
|
%0 Journal Article |
99
|
|
|
%T Data processing methods and data acquisition for samples larger than the field of view in parallel-beam tomography |
100
|
|
|
%A Vo, Nghia T |
101
|
|
|
%A Atwood, Robert C |
102
|
|
|
%A Drakopoulos, Michael |
103
|
|
|
%A Connolley, Thomas |
104
|
|
|
%J Optics Express |
105
|
|
|
%V 29 |
106
|
|
|
%N 12 |
107
|
|
|
%P 17849-17874 |
108
|
|
|
%@ 1094-4087 |
109
|
|
|
%D 2021 |
110
|
|
|
%I Optical Society of America |
111
|
|
|
doi: "https://doi.org/10.1364/OE.418448" |
112
|
|
|
|
113
|
|
|
""" |
114
|
|
|
|