24 #include <opencv2/opencv.hpp>
36 using namespace ModelFitting;
55 auto exp_i0 = std::make_shared<ManualParameter>(12.6);
56 auto exp_n = std::make_shared<ManualParameter>(1.);
57 auto exp_k = std::make_shared<ManualParameter>(1.);
69 auto exp_reg_man = make_unique<OnlySmooth>();
76 auto exp = make_unique<SersicModelComponent>(
move(exp_reg_man), exp_i0, exp_n, exp_k);
80 auto x_scale = std::make_shared<ManualParameter>(2.);
81 auto y_scale = std::make_shared<ManualParameter>(.5);
82 auto scaled_exp = make_unique<ScaledModelComponent>(
move(exp), x_scale, y_scale);
86 auto exp_rot_angle = std::make_shared<ManualParameter>(M_PI / 6.);
87 auto rotated_exp = make_unique<RotatedModelComponent>(
move(scaled_exp), exp_rot_angle);
100 auto dev_i0 = std::make_shared<ManualParameter>(525.3);
101 auto dev_n = std::make_shared<ManualParameter>(4.);
102 auto dev_k = std::make_shared<ManualParameter>(7.66924944);
103 auto dev_reg_man = make_unique<AutoSharp>();
104 auto dev = make_unique<SersicModelComponent>(
move(dev_reg_man), dev_i0, dev_n, dev_k);
105 auto scaled_dev = make_unique<ScaledModelComponent>(
move(dev), x_scale, y_scale);
106 auto dev_rot_angle = std::make_shared<ManualParameter>(-M_PI / 6.);
107 auto rotated_dev = make_unique<RotatedModelComponent>(
move(scaled_dev), dev_rot_angle);
121 auto x = std::make_shared<ManualParameter>(0);
122 auto y = std::make_shared<ManualParameter>(0);
123 auto model_scale = std::make_shared<ManualParameter>(1.);
124 auto model_angle = std::make_shared<ManualParameter>(M_PI / 4.);
131 component_list.emplace_back(
move(rotated_dev));
135 model_angle, width, height,
x, y};
151 auto image = extended_model.getRasterizedImage<cv::Mat>(.1, 201, 301);
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
void writeToFits(const cv::Mat &image, const std::string &filename)