48 addParamsLine(
" --resolution_map <vol_file=\"\">: Resolution map");
50 addParamsLine(
" -o <output=\"Sharpening.vol\">: sharpening volume");
51 addParamsLine(
" [--md <output=\"params.xmd\">]: sharpening params");
60 std::cout <<
"Starting..." << std::endl;
68 std::cout <<
"used procesors = " <<
Nthread << std::endl;
79 double uz, uy, ux, uz2, u2, uz2y2;
95 if ((
k != 0) || (
i != 0) || (
j != 0))
109 resVol = resolutionVolume();
110 resolutionVolume().
clear();
137 double lastMinRes=1e38, lastMaxRes=1e-38, value;
141 if (value>lastMaxRes)
143 if (value<lastMinRes && value>0)
174 avg = sum1 / (double) N;
176 stddev =
sqrt(fabs(sum2 / N - avg * avg) * N / (N - 1));
185 size_t xdim, ydim, zdim, ndim;
190 double w_inf = w-
delta;
201 }
else if (un<=w && un>=w_inf)
228 double freq, lastResolution=1e38;
229 int idx, lastidx = -1;
231 for(
double res = minRes; res<
maxRes; res+=step)
262 localfilteredVol += filteredVol;
263 lastweight += weight;
264 lastResolution = res;
291 double lastnorm=0, lastporc=1;
294 int idx, bool1=1, bool2=1;
315 auxVol = filteredVol;
322 filteredVol -= operatedfiltered;
331 normOrig =
sqrt(normOrig);
345 double porc=lastnorm*100/
norm;
348 double subst=porc-lastporc;
350 if ((subst<1)&&(bool1==1)&&(i>2))
363 std::cout <<
" lambda " <<
lambda << std::endl;
double getDoubleParam(const char *param, int arg=0)
void bandPassFilterFunction(const MultidimArray< std::complex< double > > &myfftV, double w, double wL, MultidimArray< double > &filteredVol, int count)
void resizeNoCopy(const MultidimArray< T1 > &v)
void sqrt(Image< double > &op)
MultidimArray< std::complex< double > > fftV
void write(const FileName &name="", size_t select_img=ALL_IMAGES, bool isStack=false, int mode=WRITE_OVERWRITE, CastWriteMode castMode=CW_CAST, int _swapWrite=0)
#define DIGFREQ2FFT_IDX(freq, size, idx)
T norm(const std::vector< T > &v)
ql0001_ & k(htemp+1),(cvec+1),(atemp+1),(bj+1),(bl+1),(bu+1),(x+1),(clamda+1), &iout, infoqp, &zero,(w+1), &lenw,(iw+1), &leniw, &glob_grd.epsmac
#define A3D_ELEM(V, k, i, j)
const char * getParam(const char *param, int arg=0)
void maxMinResolution(MultidimArray< double > &resVol, double &maxRes, double &minRes)
MultidimArray< std::complex< double > > fftVfilter
void localfiltering(MultidimArray< std::complex< double > > &myfftV, MultidimArray< double > &localfilteredVol, double &minFreq, double &maxFreq, double &step)
#define FOR_ALL_DIRECT_ELEMENTS_IN_MULTIDIMARRAY(v)
#define DIRECT_MULTIDIM_ELEM(v, n)
__device__ float FFT_IDX2DIGFREQ(int idx, int size)
FourierTransformer transformer_inv
void computeAvgStdev_within_binary_mask(const MultidimArray< double > &resVol, const MultidimArray< double > &vol, double &stddev, bool outside=false)
MultidimArray< double > Vorig
MultidimArray< double > iu
int read(const FileName &name, DataMode datamode=DATA, size_t select_img=ALL_IMAGES, bool mapData=false, int mode=WRITE_READONLY)
#define SPEED_UP_tempsInt
void addUsageLine(const char *line, bool verbatim=false)
void initZeros(const MultidimArray< T1 > &op)
#define FOR_ALL_ELEMENTS_IN_COMMON_IN_ARRAY3D(V1, V2)
FourierTransformer transformer
MultidimArray< double > sharpenedMap
int getIntParam(const char *param, int arg=0)
MultidimArray< double > resVol
void addParamsLine(const String &line)
void getDimensions(size_t &Xdim, size_t &Ydim, size_t &Zdim, size_t &Ndim) const