Xmipp  v3.23.11-Nereus
Functions
symmetrize.cpp File Reference
#include "symmetrize.h"
#include <core/args.h>
#include <data/symmetries.h>
Include dependency graph for symmetrize.cpp:

Go to the source code of this file.

Functions

void symmetrizeVolume (const SymList &SL, const MultidimArray< double > &V_in, MultidimArray< double > &V_out, int spline, bool wrap, bool do_outside_avg, bool sum, bool helical, bool dihedral, bool helicalDihedral, double rotHelical, double rotPhaseHelical, double zHelical, double heightFraction, const MultidimArray< double > *mask, int Cn)
 
void symmetrizeImage (int symorder, const MultidimArray< double > &I_in, MultidimArray< double > &I_out, int spline, bool wrap, bool do_outside_avg, bool sum, const MultidimArray< double > *mask)
 

Function Documentation

◆ symmetrizeImage()

void symmetrizeImage ( int  symorder,
const MultidimArray< double > &  I_in,
MultidimArray< double > &  I_out,
int  spline,
bool  wrap,
bool  do_outside_avg,
bool  sum,
const MultidimArray< double > *  mask 
)

Definition at line 187 of file symmetrize.cpp.

191 {
192  double avg = 0.;
193  if (do_outside_avg)
194  {
195  MultidimArray<int> mask1;
196  mask1.resizeNoCopy(I_in);
197  mask1.setXmippOrigin();
198  int rad = XMIPP_MIN(XSIZE(I_in), YSIZE(I_in));
199  BinaryCircularMask(mask1, rad / 2, OUTSIDE_MASK);
200  double dum;
201  computeStats_within_binary_mask(mask1, I_in, dum, dum, avg, dum);
202  }
203  I_out = I_in;
204  MultidimArray<double> rotatedImg;
205  if (mask!=nullptr)
206  REPORT_ERROR(ERR_NOT_IMPLEMENTED,"mask symmetrization not implemented for images");
207  for (int i = 1; i < symorder; i++)
208  {
209  rotate(spline, rotatedImg, I_in, 360.0 / symorder * i,'Z',wrap,avg);
210  I_out += rotatedImg;
211  }
212  if (!sum)
213  I_out *= 1.0/symorder;
214 }
#define YSIZE(v)
Case or algorithm not implemented yet.
Definition: xmipp_error.h:177
#define REPORT_ERROR(nerr, ErrormMsg)
Definition: xmipp_error.h:211
void resizeNoCopy(const MultidimArray< T1 > &v)
void BinaryCircularMask(MultidimArray< int > &mask, double radius, int mode, double x0, double y0, double z0)
Definition: mask.cpp:193
#define i
#define rotate(a, i, j, k, l)
void computeStats_within_binary_mask(const MultidimArray< T1 > &mask, const MultidimArray< T > &m, double &min_val, double &max_val, double &avg, double &stddev)
Definition: mask.h:799
#define XSIZE(v)
#define XMIPP_MIN(x, y)
Definition: xmipp_macros.h:181
constexpr int OUTSIDE_MASK
Definition: mask.h:48