Xmipp
v3.23.11-Nereus
xmipp
libraries
reconstruction
volume_subtraction.h
Go to the documentation of this file.
1
/***************************************************************************
2
*
3
* Authors: Estrella Fernandez Gimenez me.fernandez@cnb.csic.es (2019)
4
*
5
* Unidad de Bioinformatica of Centro Nacional de Biotecnologia , CSIC
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; either version 2 of the License, or
10
* (at your option) any later version.
11
*
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this program; if not, write to the Free Software
19
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20
* 02111-1307 USA
21
*
22
* All comments concerning this program package may be sent to the
23
* e-mail address 'xmipp@cnb.csic.es'
24
***************************************************************************/
25
#ifndef LIBRARIES_RECONSTRUCTION_VOLUME_SUBTRACTION_H_
26
#define LIBRARIES_RECONSTRUCTION_VOLUME_SUBTRACTION_H_
27
28
#include "
core/xmipp_program.h
"
29
#include <
core/xmipp_fftw.h
>
30
#include <
data/fourier_filter.h
>
31
32
33
class
ProgVolumeSubtraction
:
public
XmippProgram
{
34
/*This class contains methods that are use to adjust an input volume (V) to a another reference volume (V1) through the use
35
of Projectors Onto Convex Sets (POCS) and to perform the subtraction between them. Other methods contained in this class
36
are used to pre-process and operate with the volumes*/
37
38
private
:
39
FileName
fnVol2;
40
FileName
fnVol1;
41
FileName
fnOutVol;
42
FileName
fnMask1;
43
FileName
fnMask2;
44
FileName
fnMaskSub;
45
FileName
fnVol1F;
46
FileName
fnVol2A;
47
48
bool
computeE;
49
size_t
iter;
50
double
v1min;
51
double
v1max;
52
bool
performSubtraction;
53
int
sigma;
54
double
cutFreq;
55
double
lambda;
56
bool
radavg;
57
double
std1;
58
size_t
n;
59
FourierTransformer
transformer2;
60
MultidimArray<std::complex<double>
> V2Fourier;
61
Image<double>
Vdiff;
62
64
void
readParams()
override
;
65
67
void
show()
const override
;
68
70
void
defineParams()
override
;
71
73
void
extractPhase(
MultidimArray
<std::complex<double>> &)
const
;
74
void
computeEnergy(
MultidimArray<double>
&,
const
MultidimArray<double>
&)
const
;
75
void
centerFFTMagnitude(
MultidimArray<double>
&,
MultidimArray
<std::complex<double>> &,
MultidimArray<double>
&)
const
;
76
MultidimArray<double>
createMask(
const
Image<double>
&,
const
FileName
&,
const
FileName
&);
77
void
filterMask(
MultidimArray<double>
&)
const
;
78
MultidimArray<std::complex<double>
> computePhase(
MultidimArray<double>
&);
79
MultidimArray<double>
getSubtractionMask(
const
FileName
&,
MultidimArray<double>
);
80
void
runIteration(
Image<double>
&,
Image<double>
&,
const
MultidimArray<double>
&,
const
MultidimArray<double>
&,
81
const
MultidimArray
<std::complex<double>> &,
const
MultidimArray<double>
&,
FourierFilter
&);
82
84
void
run()
override
;
85
86
};
88
#endif
MultidimArray
Definition:
common_lines.h:35
FileName
Definition:
xmipp_filename.h:65
FourierTransformer
Definition:
xmipp_fftw.h:60
xmipp_program.h
fourier_filter.h
xmipp_fftw.h
Image< double >
FourierFilter
Definition:
fourier_filter.h:69
XmippProgram
Definition:
xmipp_program.h:52
ProgVolumeSubtraction
Definition:
volume_subtraction.h:33
Generated by
1.8.13