Sirius  0.0.0
frequency_resampler.h
Go to the documentation of this file.
1 
22 #ifndef SIRIUS_RESAMPLER_FREQUENCY_RESAMPLER_H_
23 #define SIRIUS_RESAMPLER_FREQUENCY_RESAMPLER_H_
24 
26 #include "sirius/image.h"
27 
28 #include "sirius/fftw/types.h"
29 
30 namespace sirius {
31 namespace resampler {
32 
36 template <template <class> class ImageDecompositionPolicy, class ZoomStrategy>
37 class FrequencyResampler final
38  : public IFrequencyResampler,
39  private ImageDecompositionPolicy<ZoomStrategy> {
40  public:
41  FrequencyResampler() = default;
42 
43  // copyable
44  FrequencyResampler(const FrequencyResampler&) = default;
46  // moveable
49 
50  ~FrequencyResampler() override = default;
51 
52  // IFrequencyResampler interface
53  Image Compute(const ZoomRatio& ratio, const Image& input,
54  const Padding& image_padding,
55  const Filter& filter = {}) const override;
56 
57  private:
58  Image UnpadImage(const ZoomRatio& zoom_ratio, const Image& original_image,
59  const Image& zoomed_image, const Padding& image_padding,
60  const Filter& filter) const;
61 
62  Image DecimateImage(const Image& zoomed_image,
63  const ZoomRatio& zoom_ratio) const;
64 };
65 
66 } // namespace resampler
67 } // namespace sirius
68 
69 #include "sirius/resampler/frequency_resampler.txx"
70 
71 #endif // SIRIUS_RESAMPLER_FREQUENCY_RESAMPLER_H_
Interface that frequency resampler should implement.
Definition: i_frequency_resampler.h:39
Definition: exception.h:27
Implementation of IFrequencyResampler.
Definition: frequency_resampler.h:37
Frequency filter.
Definition: filter.h:52
Data class that represents zoom ratio as input_resolution/output_resolution.
Definition: types.h:105
Image Compute(const ZoomRatio &ratio, const Image &input, const Padding &image_padding, const Filter &filter={}) const override
Resample an image by a ratio in the frequency domain.
Data class that represents the padding of an image.
Definition: image.h:39
FrequencyResampler & operator=(const FrequencyResampler &)=default
Data class that represents an image (Size + Buffer)
Definition: image.h:65