24 #include <opencv2/opencv.hpp>
36 using namespace ModelFitting;
56 auto exp_i0 = std::make_shared<ManualParameter>(12.6);
57 auto exp_n = std::make_shared<ManualParameter>(1.);
58 auto exp_k = std::make_shared<ManualParameter>(1.);
70 auto exp_reg_man = make_unique<OnlySmooth>();
77 auto exp = make_unique<SersicModelComponent>(
move(exp_reg_man), exp_i0, exp_n, exp_k);
81 auto x_scale = std::make_shared<ManualParameter>(2.);
82 auto y_scale = std::make_shared<ManualParameter>(.5);
87 auto exp_rot_angle = std::make_shared<ManualParameter>(M_PI / 6.);
88 auto rotated_exp = make_unique<RotatedModelComponent>(
move(scaled_exp), exp_rot_angle);
101 auto dev_i0 = std::make_shared<ManualParameter>(525.3);
102 auto dev_n = std::make_shared<ManualParameter>(4.);
103 auto dev_k = std::make_shared<ManualParameter>(7.66924944);
104 auto dev_reg_man = make_unique<AutoSharp>();
105 auto dev = make_unique<SersicModelComponent>(
move(dev_reg_man), dev_i0, dev_n, dev_k);
107 auto dev_rot_angle = std::make_shared<ManualParameter>(-M_PI / 6.);
108 auto rotated_dev = make_unique<RotatedModelComponent>(
move(scaled_dev), dev_rot_angle);
122 auto x = std::make_shared<ManualParameter>(0);
123 auto y = std::make_shared<ManualParameter>(0);
124 auto model_scale = std::make_shared<ManualParameter>(1.);
125 auto model_angle = std::make_shared<ManualParameter>(M_PI / 4.);
132 component_list.emplace_back(
move(rotated_dev));
135 auto extended_model = std::make_shared<ExtendedModel<cv::Mat>>(
move(component_list), model_scale, model_scale,
152 auto image = extended_model->getRasterizedImage(.1, 201, 301);
void writeToFits(const cv::Mat &image, const std::string &filename)
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
std::unique_ptr< T > make_unique(Args &&...args)