aimsdata
4.7.0
Neuroimaging data handling
scaledcoding.h
Go to the documentation of this file.
1
/* This software and supporting documentation are distributed by
2
* Institut Federatif de Recherche 49
3
* CEA/NeuroSpin, Batiment 145,
4
* 91191 Gif-sur-Yvette cedex
5
* France
6
*
7
* This software is governed by the CeCILL-B license under
8
* French law and abiding by the rules of distribution of free software.
9
* You can use, modify and/or redistribute the software under the
10
* terms of the CeCILL-B license as circulated by CEA, CNRS
11
* and INRIA at the following URL "http://www.cecill.info".
12
*
13
* As a counterpart to the access to the source code and rights to copy,
14
* modify and redistribute granted by the license, users are provided only
15
* with a limited warranty and the software's author, the holder of the
16
* economic rights, and the successive licensors have only limited
17
* liability.
18
*
19
* In this respect, the user's attention is drawn to the risks associated
20
* with loading, using, modifying and/or developing or reproducing the
21
* software by the user in light of its specific status of free software,
22
* that may mean that it is complicated to manipulate, and that also
23
* therefore means that it is reserved for developers and experienced
24
* professionals having in-depth computer knowledge. Users are therefore
25
* encouraged to load and test the software's suitability as regards their
26
* requirements in conditions enabling the security of their systems and/or
27
* data to be ensured and, more generally, to use and operate it in the
28
* same conditions as regards security.
29
*
30
* The fact that you are presently reading this means that you have had
31
* knowledge of the CeCILL-B license and that you accept its terms.
32
*/
33
34
#ifndef AIMS_IO_SCALEDCODING_H
35
#define AIMS_IO_SCALEDCODING_H
36
37
#include <
soma-io/io/scaledcoding.h
>
38
39
namespace
carto
40
{
41
template
<
typename
T>
class
Volume;
42
}
43
44
template
<
typename
T>
class
AimsData
;
45
46
47
namespace
aims
48
{
49
54
template
<
typename
T>
55
bool
canEncodeAsScaledS16
(
const
carto::Volume<T>
& vol,
float
& slope,
56
float
& offset,
bool
enableoffset =
true
,
57
double
*maxerr = 0 );
58
59
// declare specializations that actually do something
60
template
<>
61
bool
canEncodeAsScaledS16
(
const
carto::Volume<float>
& vol,
float
& slope,
62
float
& offset,
bool
enableoffset,
double
* );
63
template
<>
64
bool
canEncodeAsScaledS16
(
const
carto::Volume<double>
& vol,
float
& slope,
65
float
& offset,
bool
enableoffset,
double
* );
66
67
// default implementation always fails
68
template
<
typename
T>
69
inline
bool
canEncodeAsScaledS16
(
const
carto::Volume<T>
&,
float
&,
70
float
&,
bool
,
double
* )
71
{
72
return
false
;
73
}
74
75
template
<
typename
INP,
typename
OUTP>
76
class
ScaledEncoding
77
{
78
public :
79
83
static
soma::ScaledEncodingInfo
info(
const
AimsData<INP>
& thing );
84
85
static
soma::ScaledEncodingInfo
rescale(
const
AimsData<INP>
& in,
86
AimsData<OUTP>
& out );
87
};
88
}
89
90
#endif
91
92
93
carto::Volume
Definition:
structuring_element.h:49
aims::canEncodeAsScaledS16
bool canEncodeAsScaledS16(const carto::Volume< double > &vol, float &slope, float &offset, bool enableoffset, double *)
aims
The class for EcatSino data write operation.
Definition:
border.h:42
carto
soma::ScaledEncodingInfo
AimsData
Definition:
component.h:43
scaledcoding.h
aims::ScaledEncoding
Definition:
scaledcoding.h:76
aims
io
scaledcoding.h
Generated by
1.8.13