SourceXtractorPlusPlus  0.11
Please provide a description of the project.
OpenCvPsf.h
Go to the documentation of this file.
1 
23 #ifndef MODELFITTING_OPENCVPSF_H
24 #define MODELFITTING_OPENCVPSF_H
25 
26 #include <opencv2/opencv.hpp>
28 
29 namespace ModelFitting {
30 
31 class OpenCvPsf {
32 
33 public:
34 
35  OpenCvPsf(double pixel_scale, const cv::Mat& kernel)
36  : m_pixel_scale{pixel_scale}, m_kernel{kernel} {
37  if (kernel.cols != kernel.rows) {
38  throw Elements::Exception() << "PSF kernel must be square but was "
39  << kernel.cols << 'X' << kernel.rows;
40  }
41  if (kernel.cols % 2 == 0) {
42  throw Elements::Exception() << "PSF kernel must have odd size, but got "
43  << kernel.cols;
44  }
45  }
46 
47  virtual ~OpenCvPsf() = default;
48 
49  double getPixelScale() const {
50  return m_pixel_scale;
51  }
52 
53  std::size_t getSize() const {
54  return m_kernel.cols;
55  }
56 
57 // template <typename ImageType>
58 // ImageType getKernel() const;
59 
60  cv::Mat getKernel() const {
61  return m_kernel;
62  }
63 
64  cv::Mat getScaledKernel(double scale) const {
65  return m_kernel * scale;
66  }
67 
68 // template <typename ImageType>
69 // void convolve(ImageType& image) const;
70 
71  void convolve(cv::Mat& image) const {
72  cv::filter2D(image, image, -1, m_kernel);
73  }
74 
75 private:
76 
77  double m_pixel_scale;
78  cv::Mat m_kernel;
79 
80 }; // end of class OpenCvPsf
81 
82 } // endo of ModelFitting
83 
84 #endif /* MODELFITTING_OPENCVPSF_H */
85 
ModelFitting::OpenCvPsf::getScaledKernel
cv::Mat getScaledKernel(double scale) const
Definition: OpenCvPsf.h:64
ModelFitting::OpenCvPsf
Definition: OpenCvPsf.h:31
ModelFitting::OpenCvPsf::getSize
std::size_t getSize() const
Definition: OpenCvPsf.h:53
ModelFitting::OpenCvPsf::m_kernel
cv::Mat m_kernel
Definition: OpenCvPsf.h:78
ModelFitting::OpenCvPsf::OpenCvPsf
OpenCvPsf(double pixel_scale, const cv::Mat &kernel)
Definition: OpenCvPsf.h:35
ModelFitting::OpenCvPsf::getPixelScale
double getPixelScale() const
Definition: OpenCvPsf.h:49
ModelFitting::OpenCvPsf::getKernel
cv::Mat getKernel() const
Definition: OpenCvPsf.h:60
pixel_scale
const double pixel_scale
Definition: TestImage.cpp:75
Exception.h
Elements::Exception
ModelFitting::OpenCvPsf::~OpenCvPsf
virtual ~OpenCvPsf()=default
std::size_t
ModelFitting
Definition: AsinhChiSquareComparator.h:30
ModelFitting::OpenCvPsf::m_pixel_scale
double m_pixel_scale
Definition: OpenCvPsf.h:77
ModelFitting::OpenCvPsf::convolve
void convolve(cv::Mat &image) const
Definition: OpenCvPsf.h:71