Commit 56ee03428a3c38b81e96db14406284d363c80764

Authored by Scott Klum
1 parent 5905bd19

Updated pad

Showing 1 changed file with 25 additions and 12 deletions
openbr/plugins/imgproc/pad.cpp
  1 +#include <opencv2/imgproc/imgproc.hpp>
1 #include <openbr/plugins/openbr_internal.h> 2 #include <openbr/plugins/openbr_internal.h>
2 3
3 using namespace cv; 4 using namespace cv;
@@ -5,24 +6,36 @@ using namespace cv; @@ -5,24 +6,36 @@ using namespace cv;
5 namespace br 6 namespace br
6 { 7 {
7 8
  9 +/*!
  10 + * \ingroup transforms
  11 + * \brief Pads an image.
  12 + * \author Scott Klum \cite sklum
  13 + */
8 class PadTransform : public UntrainableTransform 14 class PadTransform : public UntrainableTransform
9 { 15 {
10 Q_OBJECT 16 Q_OBJECT
11 -  
12 - Q_PROPERTY(int padSize READ get_padSize WRITE set_padSize RESET reset_padSize STORED false)  
13 - Q_PROPERTY(int padValue READ get_padValue WRITE set_padValue RESET reset_padValue STORED false)  
14 - BR_PROPERTY(int, padSize, 0)  
15 - BR_PROPERTY(int, padValue, 0) 17 + Q_ENUMS(Method)
  18 +
  19 +public:
  20 + /*!< */
  21 + enum Border { Replicate = BORDER_REPLICATE,
  22 + Reflect = BORDER_REFLECT_101,
  23 + Constant = BORDER_CONSTANT};
  24 +
  25 +private:
  26 + Q_PROPERTY(Border border READ get_border WRITE set_border RESET reset_border STORED false)
  27 + Q_PROPERTY(float percent READ get_percent WRITE set_percent RESET reset_percent STORED false)
  28 + Q_PROPERTY(int value READ get_value WRITE set_value RESET reset_value STORED false)
  29 + BR_PROPERTY(Border, border, Replicate)
  30 + BR_PROPERTY(float, percent, .1)
  31 + BR_PROPERTY(float, value, 0)
16 32
17 void project(const Template &src, Template &dst) const 33 void project(const Template &src, Template &dst) const
18 { 34 {
19 - dst.file = src.file;  
20 -  
21 - foreach (const Mat &m, src) {  
22 - Mat padded = padValue * Mat::ones(m.rows + 2*padSize, m.cols + 2*padSize, m.type());  
23 - padded(Rect(padSize, padSize, padded.cols - padSize, padded.rows - padSize)) = m;  
24 - dst += padded;  
25 - } 35 + int top, bottom, left, right;
  36 + top = percent*src.m().rows; bottom = percent*src.m().rows;
  37 + left = percent*src.m().cols; right = percent*src.m().cols;
  38 + copyMakeBorder(src, dst, top, bottom, left, right, border, Scalar(value));
26 } 39 }
27 }; 40 };
28 41