Xmipp  v3.23.11-Nereus
Functions | Variables
micrograph_automatic_picking2.cpp File Reference
#include <fstream>
#include <random>
#include "micrograph_automatic_picking2.h"
#include "core/transformations.h"
#include "core/xmipp_image_generic.h"
#include "data/mask.h"
#include "data/fourier_filter.h"
#include "data/normalize.h"
Include dependency graph for micrograph_automatic_picking2.cpp:

Go to the source code of this file.

Functions

void correlationBetweenPolarChannels (int n1, int n2, int nF, const MultidimArray< std::complex< double > > &fourierPolarStack, MultidimArray< double > &mIpolarCorr, CorrelationAux &aux)
 
double euclidean_distance (const Particle2 &p1, const Particle2 &p2)
 
bool isLocalMaxima (MultidimArray< double > &inputArray, int x, int y)
 

Variables

int flagAbort =0
 

Function Documentation

◆ correlationBetweenPolarChannels()

void correlationBetweenPolarChannels ( int  n1,
int  n2,
int  nF,
const MultidimArray< std::complex< double > > &  fourierPolarStack,
MultidimArray< double > &  mIpolarCorr,
CorrelationAux aux 
)

Definition at line 938 of file micrograph_automatic_picking2.cpp.

942 {
943  MultidimArray< std::complex< double > > fourierPolar1, fourierPolar2;
944  MultidimArray<double> imgPolarCorr, corr2D;
945  fourierPolar1.aliasImageInStack(fourierPolarStack, n1);
946  fourierPolar2.aliasImageInStack(fourierPolarStack, n2);
947  imgPolarCorr.aliasImageInStack(mIpolarCorr,nF);
948  // The correlation between images n1 and n2 and put in nF
949  corr2D.resize(YSIZE(mIpolarCorr),XSIZE(mIpolarCorr));
950  correlation_matrix(fourierPolar1,fourierPolar2,corr2D,aux);
951  imgPolarCorr=corr2D;
952 }
#define YSIZE(v)
void resize(size_t Ndim, size_t Zdim, size_t Ydim, size_t Xdim, bool copy=true)
void aliasImageInStack(const MultidimArray< T > &m, size_t select_image)
void correlation_matrix(const MultidimArray< double > &m1, const MultidimArray< double > &m2, MultidimArray< double > &R, CorrelationAux &aux, bool center)
Definition: xmipp_fftw.cpp:869
#define XSIZE(v)

◆ euclidean_distance()

double euclidean_distance ( const Particle2 p1,
const Particle2 p2 
)

Definition at line 955 of file micrograph_automatic_picking2.cpp.

956 {
957  double dx=(p1.x-p2.x);
958  double dy= (p1.y-p2.y);
959  return sqrt(dx*dx+dy*dy);
960 }
void sqrt(Image< double > &op)
double dx

◆ isLocalMaxima()

bool isLocalMaxima ( MultidimArray< double > &  inputArray,
int  x,
int  y 
)

Definition at line 990 of file micrograph_automatic_picking2.cpp.

991 {
992  if (DIRECT_A2D_ELEM(inputArray,y-1,x-1)<DIRECT_A2D_ELEM(inputArray,y,x) &&
993  DIRECT_A2D_ELEM(inputArray,y-1,x)<DIRECT_A2D_ELEM(inputArray,y,x) &&
994  DIRECT_A2D_ELEM(inputArray,y-1,x+1)<DIRECT_A2D_ELEM(inputArray,y,x) &&
995  DIRECT_A2D_ELEM(inputArray,y,x-1)<DIRECT_A2D_ELEM(inputArray,y,x) &&
996  DIRECT_A2D_ELEM(inputArray,y,x+1)<DIRECT_A2D_ELEM(inputArray,y,x) &&
997  DIRECT_A2D_ELEM(inputArray,y+1,x-1)<DIRECT_A2D_ELEM(inputArray,y,x) &&
998  DIRECT_A2D_ELEM(inputArray,y+1,x)<DIRECT_A2D_ELEM(inputArray,y,x) &&
999  DIRECT_A2D_ELEM(inputArray,y+1,x+1)<DIRECT_A2D_ELEM(inputArray,y,x))
1000  return true;
1001  else
1002  return false;
1003 }
static double * y
#define DIRECT_A2D_ELEM(v, i, j)
doublereal * x

Variable Documentation

◆ flagAbort

int flagAbort =0

Definition at line 36 of file micrograph_automatic_picking2.cpp.