SourceXtractorPlusPlus  0.15
Please provide a description of the project.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
OpenCVConvolution.h
Go to the documentation of this file.
1 
17 /*
18  * @file SEFramework/Convolution/OpenCVConvolution.h
19  * @date 17/09/18
20  * @author aalvarez
21  */
22 
23 #ifndef _SEFRAMEWORK_CONVOLUTION_OPENCVCONVOLUTION_H
24 #define _SEFRAMEWORK_CONVOLUTION_OPENCVCONVOLUTION_H
25 
27 #include <opencv2/opencv.hpp>
28 
29 namespace SourceXtractor {
30 
32 public:
34  : m_kernel(img->getWidth(), img->getHeight(), CV_32F) {
35  cv::Mat aux(img->getWidth(), img->getHeight(), CV_32F);
36  std::copy(img->getData().begin(), img->getData().end(), aux.begin<float>());
37  cv::flip(aux, m_kernel, -1);
38  }
39 
40  virtual ~OpenCVConvolution() = default;
41 
43  cv::Mat image_cv (image->getHeight(), image->getWidth(), CV_32F);
44  std::copy(image->getData().begin(), image->getData().end(), image_cv.begin<float>());
45 
46  cv::filter2D(image_cv, image_cv, -1, m_kernel);
47 
48  std::copy(image_cv.begin<float>(), image_cv.end<float>(), image->getData().begin());
49  }
50 
52  return m_kernel.size[0];
53  }
54 
56  return m_kernel.size[1];
57  }
58 
59 private:
60  cv::Mat m_kernel;// (size, size, CV_32F);
61 };
62 
63 } // end of SourceXtractor
64 
65 #endif // _SEFRAMEWORK_CONVOLUTION_OPENCVCONVOLUTION_H
T copy(T...args)
OpenCVConvolution(std::shared_ptr< const VectorImage< SeFloat >> img)
Image implementation which keeps the pixel values in memory.
Definition: VectorImage.h:52
void convolve(std::shared_ptr< VectorImage< SeFloat >> image) const
virtual ~OpenCVConvolution()=default