Xmipp  v3.23.11-Nereus
Functions
forward_zernike_subtomos.cpp File Reference
#include "forward_zernike_subtomos.h"
#include "core/transformations.h"
#include "core/xmipp_image_extension.h"
#include "core/xmipp_image_generic.h"
#include "data/projection.h"
#include "data/mask.h"
Include dependency graph for forward_zernike_subtomos.cpp:

Go to the source code of this file.

Functions

double continuousZernikeSubtomoCost (double *x, void *_prm)
 

Function Documentation

◆ continuousZernikeSubtomoCost()

double continuousZernikeSubtomoCost ( double *  x,
void *  _prm 
)

Definition at line 372 of file forward_zernike_subtomos.cpp.

373 {
375  int idx = 3*(prm->vecSize);
376  // TODO: Optimize parameters for each image (not sharing)
377  // prm->deltaDefocusU[0]=x[idx+6]; prm->deltaDefocusU[1]=x[idx+6];
378  // prm->deltaDefocusV[0]=x[idx+7]; prm->deltaDefocusV[1]=x[idx+7];
379  // prm->deltaDefocusAngle[0]=x[idx+8]; prm->deltaDefocusAngle[1]=x[idx+8];
380 
381  prm->deltaX = x[idx + 1];
382  prm->deltaY = x[idx + 2];
383  prm->deltaZ = x[idx + 3];
384  prm->deltaRot = x[idx + 4];
385  prm->deltaTilt = x[idx + 5];
386  prm->deltaPsi = x[idx + 6];
387  prm->deltaDefocusU=x[idx + 7];
388  prm->deltaDefocusV=x[idx + 8];
389  prm->deltaDefocusAngle=x[idx + 9];
390 
391  MAT_ELEM(prm->A, 0, 3) = prm->old_shiftX + prm->deltaX;
392  MAT_ELEM(prm->A, 1, 3) = prm->old_shiftY + prm->deltaY;
393  MAT_ELEM(prm->A, 2, 3) = prm->old_shiftZ + prm->deltaZ;
394  MAT_ELEM(prm->A, 0, 0) = 1;
395  MAT_ELEM(prm->A, 0, 1) = 0;
396  MAT_ELEM(prm->A, 0, 2) = 0;
397  MAT_ELEM(prm->A, 1, 0) = 0;
398  MAT_ELEM(prm->A, 1, 1) = 1;
399  MAT_ELEM(prm->A, 1, 2) = 0;
400  MAT_ELEM(prm->A, 2, 0) = 0;
401  MAT_ELEM(prm->A, 2, 1) = 0;
402  MAT_ELEM(prm->A, 2, 2) = 1;
403  // MAT_ELEM(prm->A, 3, 0) = 0;
404  // MAT_ELEM(prm->A, 3, 1) = 0;
405  // MAT_ELEM(prm->A, 3, 2) = 0;
406  // MAT_ELEM(prm->A, 3, 3) = 1;
407 
408  return prm->transformImageSph(x);
409 
410  // return prm->transformImageSph(x,prm->old_rot+deltaRot, prm->old_tilt+deltaTilt, prm->old_psi+deltaPsi,
411  // prm->A, deltaDefocusU, deltaDefocusV, deltaDefocusAngle);
412 }
doublereal * x
#define MAT_ELEM(m, i, j)
Definition: matrix2d.h:116
ProgClassifyCL2D * prm