25template <
typename PsfType>
28template <
typename PsfType>
31template <
typename PsfType>
35template <
typename PsfType>
39template <
typename PsfType,
typename ImageType>
52template <
typename PsfType,
typename ImageType>
64template <
typename PsfType,
typename ImageType>
69template <
typename ImageType>
72 for (
auto& model : model_list) {
73 double value = model.getValue();
74 for(
auto it=Traits::begin(image); it!=Traits::end(image); ++it) {
80template <
typename ImageType,
typename PsfType>
84 auto scale_factor = psf.getPixelScale() /
pixel_scale;
85 for (
auto& model : model_list) {
86 Traits::addImageToImage(image, psf.getScaledKernel(model.getValue()), scale_factor, model.getX(), model.getY());
90template <
typename ImageType,
typename PsfType>
94 auto scale_factor = psf.getPixelScale() /
pixel_scale;
96 for (
size_t i = 0; i < model_list.size(); ++i) {
97 auto& model = model_list[i];
103 if (height % 2 == 0) {
107 auto extended_image = model->getRasterizedImage(psf.getPixelScale(), width, height);
108 psf.convolve(i, extended_image);
109 Traits::addImageToImage(image, extended_image, scale_factor, model->getX(), model->getY());
115template <
typename PsfType,
typename ImageType>
122template <
typename PsfType,
typename ImageType>
128template <
typename PsfType,
typename ImageType>
135template <
typename PsfType,
typename ImageType>
141template <
typename PsfType,
typename ImageType>
146template <
typename PsfType,
typename ImageType>
FrameModelPsfContainer(std::size_t n_extended_models)
FrameModelPsfContextContainer(std::size_t n_extended_models)
std::vector< typename PsfTraits< PsfType >::context_t > m_psf_contexts
typename ImageTraits< ImageType >::iterator const_iterator
std::vector< std::shared_ptr< ExtendedModel< ImageType > > > m_extended_model_list
void rasterToImage(ImageType &)
std::unique_ptr< ImageType > m_model_image
std::vector< PointModel > m_point_model_list
FrameModel(double pixel_scale, std::size_t width, std::size_t height, std::vector< ConstantModel > constant_model_list, std::vector< PointModel > point_model_list, std::vector< std::shared_ptr< ExtendedModel< ImageType > > > extended_model_list, PsfType psf)
const ImageType & getImage()
std::vector< ConstantModel > m_constant_model_list
void addExtendedModels(ImageType &image, const std::vector< std::shared_ptr< ExtendedModel< ImageType > > > &model_list, PsfType &psf, double pixel_scale)
void addConstantModels(ImageType &image, const std::vector< ConstantModel > &model_list)
void addPointModels(ImageType &image, const std::vector< PointModel > &model_list, const PsfType &psf, double pixel_scale)
static iterator begin(ImageType &image)
static iterator end(ImageType &image)