SourceXtractorPlusPlus
0.21
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SEFramework
SEFramework
Convolution
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
26
#include "
SEFramework/Image/VectorImage.h
"
27
#include <opencv2/opencv.hpp>
28
29
namespace
SourceXtractor
{
30
31
class
OpenCVConvolution
{
32
public
:
33
explicit
OpenCVConvolution
(
std::shared_ptr
<
const
VectorImage<SeFloat>
>
img
)
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
42
void
convolve
(
std::shared_ptr
<
VectorImage<SeFloat>
>
image
)
const
{
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
51
std::size_t
getWidth
()
const
{
52
return
m_kernel
.size[0];
53
}
54
55
std::size_t
getHeight
()
const
{
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
VectorImage.h
SourceXtractor::OpenCVConvolution
Definition
OpenCVConvolution.h:31
SourceXtractor::OpenCVConvolution::getHeight
std::size_t getHeight() const
Definition
OpenCVConvolution.h:55
SourceXtractor::OpenCVConvolution::~OpenCVConvolution
virtual ~OpenCVConvolution()=default
SourceXtractor::OpenCVConvolution::OpenCVConvolution
OpenCVConvolution(std::shared_ptr< const VectorImage< SeFloat > > img)
Definition
OpenCVConvolution.h:33
SourceXtractor::OpenCVConvolution::convolve
void convolve(std::shared_ptr< VectorImage< SeFloat > > image) const
Definition
OpenCVConvolution.h:42
SourceXtractor::OpenCVConvolution::getWidth
std::size_t getWidth() const
Definition
OpenCVConvolution.h:51
SourceXtractor::OpenCVConvolution::m_kernel
cv::Mat m_kernel
Definition
OpenCVConvolution.h:60
std::copy
T copy(T... args)
std::function
SourceXtractor
Definition
Aperture.h:30
std::shared_ptr
std::size_t
Generated by
1.10.0