41 using namespace ModelFitting;
54 auto rand_int =
bind(int_distribution, generator);
56 auto rand_double =
bind(double_distribution, generator);
71 auto back_value = std::make_shared<ManualParameter>(1E-6);
75 for (
auto point_no=rand_int(); point_no>0; --point_no) {
78 auto x = std::make_shared<ManualParameter>(rand_double() * width);
79 auto y = std::make_shared<ManualParameter>(rand_double() * height);
80 auto value = std::make_shared<ManualParameter>(rand_double() * 5.);
81 point_models.emplace_back(
x, y, value);
85 for (
auto ext_no=rand_int(); ext_no>0; --ext_no) {
90 auto x_scale = std::make_shared<ManualParameter>((rand_double() * .4) + .1);
91 auto y_scale = std::make_shared<ManualParameter>((rand_double() * .4) + .1);
93 auto rot_angle = std::make_shared<ManualParameter>(rand_double() * M_PI);
95 auto x = std::make_shared<ManualParameter>(rand_double() * width);
96 auto y = std::make_shared<ManualParameter>(rand_double() * height);
98 double width = 15. *
std::max(x_scale->getValue(), y_scale->getValue());
99 double height = 15. *
std::max(x_scale->getValue(), y_scale->getValue());
102 auto exp_i0 = std::make_shared<ManualParameter>(rand_double() * 1E2 + .1);
103 auto exp_n = std::make_shared<ManualParameter>(1.);
104 auto exp_k = std::make_shared<ManualParameter>(1.);
105 auto exp_reg_man = make_unique<OnlySmooth>();
106 auto exp = make_unique<SersicModelComponent>(
move(exp_reg_man), exp_i0, exp_n, exp_k);
107 component_list.emplace_back(
move(exp));
109 auto dev_i0 = std::make_shared<ManualParameter>(rand_double() * 5E3 + 1.);
110 auto dev_n = std::make_shared<ManualParameter>(4.);
111 auto dev_k = std::make_shared<ManualParameter>(7.66924944);
112 auto dev_reg_man = make_unique<AutoSharp>();
113 auto dev = make_unique<SersicModelComponent>(
move(dev_reg_man), dev_i0, dev_n, dev_k);
116 extended_models.emplace_back(
std::move(component_list), x_scale, y_scale,
117 rot_angle, width, height, x, y);
127 auto psf =
readPsf(psf_path[0].
string());
142 auto image = frame_model.getImage();
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
ModelFitting::OpenCvPsf readPsf(const std::string &filename)
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
void writeToFits(const cv::Mat &image, const std::string &filename)
ELEMENTS_API std::vector< boost::filesystem::path > pathSearchInEnvVariable(const std::string &file_name, const std::string &path_like_env_variable, SearchType search_type=SearchType::Recursive)