pad.cpp
1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <opencv2/imgproc/imgproc.hpp>
#include <openbr/plugins/openbr_internal.h>
using namespace cv;
namespace br
{
/*!
* \ingroup transforms
* \brief Pads an image.
* \author Scott Klum \cite sklum
*/
class PadTransform : public UntrainableTransform
{
Q_OBJECT
Q_ENUMS(Method)
public:
/*!< */
enum Border { Replicate = BORDER_REPLICATE,
Reflect = BORDER_REFLECT_101,
Constant = BORDER_CONSTANT};
private:
Q_PROPERTY(Border border READ get_border WRITE set_border RESET reset_border STORED false)
Q_PROPERTY(float percent READ get_percent WRITE set_percent RESET reset_percent STORED false)
Q_PROPERTY(int value READ get_value WRITE set_value RESET reset_value STORED false)
BR_PROPERTY(Border, border, Replicate)
BR_PROPERTY(float, percent, .1)
BR_PROPERTY(float, value, 0)
void project(const Template &src, Template &dst) const
{
int top, bottom, left, right;
top = percent*src.m().rows; bottom = percent*src.m().rows;
left = percent*src.m().cols; right = percent*src.m().cols;
copyMakeBorder(src, dst, top, bottom, left, right, border, Scalar(value));
}
};
BR_REGISTER(Transform, PadTransform)
} // namespace br
#include "imgproc/pad.moc"