-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUnbiasedNonLocalMeans.xml
166 lines (151 loc) · 7.39 KB
/
UnbiasedNonLocalMeans.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
<?xml version="1.0" encoding="utf-8"?>
<executable>
<category>Filtering.Denoising</category>
<title>Unbiased NLM for MRI</title>
<description>
This module implements a fast version of the popular Non-Local Means filter for image denoising. This algorithm filters each pixel as a weighted average of its neighbors in a large vicinity. The weights are computed based on the similarity of each neighbor with the voxel to be denoised.\n In the original formulation a patch with a certain radius is centered in each of the voxels, and the Mean Squared Error between each pair of corresponding voxels is computed. In this implementation, only the mean value and gradient components are compared. This, together with an efficient memory management, can attain a speed-up of nearly 20x. Besides, the filtering is more accurate than the original with poor SNR.\n This code is intended for its use with MRI (or any other Rician-distributed modality): the second order moment is estimated, then we subtract twice the squared power of noise, and finally we take the square root of the result to remove the Rician bias.\n The original implementation of the NLM filter may be found in:\n A. Buades, B. Coll, J. Morel, "A review of image denoising algorithms, with a new one", Multiscale Modelling and Simulation 4(2): 490-530. 2005.\n The correction of the Rician bias is described in the following reference (among others):\n S. Aja-Fernandez, K. Krissian, "An unbiased Non-Local Means scheme for DWI filtering", in: Proceedings of the MICCAI Workshop on Computational Diffusion MRI, 2008, pp. 277-284.\n The whole description of this version may be found in the following paper (please, cite it if you are willing to use this software):\n A. Tristan-Vega, V. Garcia Perez, S. Aja-Fenandez, and C.-F. Westin, "Efficient and Robust Nonlocal Means Denoising of MR Data Based on Salient Features Matching", Computer Methods and Programs in Biomedicine. (Accepted for publication) 2011.
</description>
<version>0.0.1.$Revision: 1 $(beta)</version>
<documentation-url>http://www.slicer.org/slicerWiki/index.php/Modules:UnbiasedNonLocalMeans-Documentation-3.6</documentation-url>
<license></license>
<contributor>Antonio Tristan Vega, Veronica Garcia-Perez, Santiago Aja-Fernandez, Carl-Fredrik Westin
</contributor>
<acknowledgements>Supported by grant number FMECD-2010/71131616E from the Spanish Ministry of Education/Fulbright Committee
</acknowledgements>
<parameters>
<label>Unbiased NLM for MRI</label>
<description>Parameters for UNLM</description>
<float>
<name>iSigma</name>
<label>Noise power</label>
<longflag>--sigma</longflag>
<description>The root power of noise (sigma) in the complex Gaussian process the Rician comes from. If it is underestimated, the algorithm fails to remove the noise. If it is overestimated, over-blurring is likely to occur.</description>
<default>5.0</default>
</float>
<integer-vector>
<name>iRadiusSearch</name>
<label>Search radius</label>
<longflag>--rs</longflag>
<description>The algorithm search for similar voxels in a neighborhood of this radius (radii larger than 5,5,5 are very slow, and the results can be only marginally better. Small radii may fail to effectively remove the noise).</description>
<default>3,3,3</default>
</integer-vector>
<integer-vector>
<name>iRadiusComp</name>
<label>Comparison radius</label>
<longflag>--rc</longflag>
<description>Similarity between blocks is computed as the difference between mean values and gradients. These parameters are computed fitting a hyperplane with LS inside a neighborhood of this size</description>
<default>1,1,1</default>
</integer-vector>
<float>
<name>iH</name>
<label>h parameter</label>
<longflag>--hp</longflag>
<description>This parameter is related to noise; the larger the parameter, the more aggressive the filtering. Should be near 1, and only values between 0.8 and 1.2 are allowed</description>
<default>1.0</default>
</float>
<float>
<name>iPs</name>
<label>Preselection threshold</label>
<longflag>--ps</longflag>
<description>To accelerate computations, preselection is used: if the normalized difference is above this threshold, the voxel will be discarded (non used for average)</description>
<default>2.0</default>
</float>
<double>
<name>iMinScale</name>
<label>Minimum scale level</label>
<longflag>--min</longflag>
<description>Minimum scale level</description>
<default>1.0</default>
</double>
<double>
<name>iMaxScale</name>
<label>Maximum scale level</label>
<longflag>--max</longflag>
<description>Maximum scale level</description>
<default>4.0</default>
</double>
<integer>
<name>iNScales</name>
<label>Number of scales</label>
<longflag>--nos</longflag>
<description>Number of scales</description>
<default>5</default>
</integer>
<integer>
<name>iOrder</name>
<label>Order of derivatives</label>
<longflag>--ord</longflag>
<description></description>
<default>2</default>
</integer>
<double>
<name>iAlpha</name>
<label>Parameter to control the delta strength</label>
<longflag>--alpha</longflag>
<description></description>
<default>1.0</default>
</double>
<boolean>
<name>iEstimatedDistanceMean</name>
<label>Estimated Distance Mean</label>
<longflag>--estDist</longflag>
<description>Use Estimated Distance Mean</description>
<default>false</default>
</boolean>
<boolean>
<name>iNormalizedByFeatureStrength</name>
<label>Normalized By Feature Strength</label>
<longflag>--normByFeat</longflag>
<description>Use Normalized By Feature Strength</description>
<default>false</default>
</boolean>
<boolean>
<name>iDeltaFeatureStrength</name>
<label>Delta Feature Strength</label>
<longflag>--deltaStr</longflag>
<description>Use Delta Feature Strength</description>
<default>false</default>
</boolean>
</parameters>
<parameters>
<label>IO</label>
<description>Input/output parameters</description>
<image type="scalar">
<name>inputVolume</name>
<label>Input Volume</label>
<channel>input</channel>
<longflag>i</longflag>
<description>Input MRI volume.</description>
</image>
<image type="scalar">
<name>outputVolume</name>
<label>Output Volume</label>
<channel>output</channel>
<longflag>o</longflag>
<description>Output (filtered) MRI volume.</description>
</image>
<image type="scalar">
<name>featuresVolume</name>
<label>Features Volume</label>
<channel>output</channel>
<longflag>feat</longflag>
<description>Features volume.</description>
</image>
<image type="scalar">
<name>scalesImageVolume</name>
<label>Scales Volume</label>
<channel>output</channel>
<longflag>scale</longflag>
<description>Scales volume.</description>
<default>None</default>
</image>
<image type="scalar">
<name>strengthImageVolume</name>
<label>Strength Volume</label>
<channel>output</channel>
<longflag>strength</longflag>
<description>Strength volume.</description>
<default>None</default>
</image>
</parameters>
</executable>