40 lines
840 B
C++
40 lines
840 B
C++
#ifndef STARFIT_H
|
|
#define STARFIT_H
|
|
|
|
#include "rawimage.h"
|
|
#include <gsl/gsl_multifit_nlinear.h>
|
|
|
|
double gauss_model(double a, double x0, double y0, double sx, double sy, double x, double y);
|
|
|
|
struct Star
|
|
{
|
|
double m_am;
|
|
double m_x,m_y;
|
|
double m_sx,m_sy;
|
|
double m_theta;
|
|
Star();
|
|
bool valid() const;
|
|
double hwhmX() const;
|
|
double hwhmY() const;
|
|
double hw20X() const;
|
|
double hw20Y() const;
|
|
double fwhmX() const;
|
|
double fwhmY() const;
|
|
bool operator<(const Star &d) const;
|
|
};
|
|
|
|
class StarFit
|
|
{
|
|
int m_size;
|
|
gsl_multifit_nlinear_fdf m_fdf;
|
|
gsl_multifit_nlinear_fdf m_fdf_an;
|
|
gsl_multifit_nlinear_parameters m_fdf_params;
|
|
gsl_vector *m_vector;
|
|
public:
|
|
StarFit(int size);
|
|
~StarFit();
|
|
Star fitStar(const std::vector<double> &data, bool angle);
|
|
};
|
|
|
|
#endif // STARFIT_H
|