Commit 193c59840ea3b7dd22bfef97a9455b5c2df104b0
1 parent
1d389f1d
blur each ROI in file's rects()
Showing
1 changed file
with
13 additions
and
1 deletions
openbr/plugins/filter.cpp
| @@ -61,11 +61,23 @@ class BlurTransform : public UntrainableTransform | @@ -61,11 +61,23 @@ class BlurTransform : public UntrainableTransform | ||
| 61 | { | 61 | { |
| 62 | Q_OBJECT | 62 | Q_OBJECT |
| 63 | Q_PROPERTY(float sigma READ get_sigma WRITE set_sigma RESET reset_sigma STORED false) | 63 | Q_PROPERTY(float sigma READ get_sigma WRITE set_sigma RESET reset_sigma STORED false) |
| 64 | + Q_PROPERTY(bool ROI READ get_ROI WRITE set_ROI RESET reset_ROI STORED false) | ||
| 64 | BR_PROPERTY(float, sigma, 1) | 65 | BR_PROPERTY(float, sigma, 1) |
| 66 | + BR_PROPERTY(bool, ROI, false) | ||
| 65 | 67 | ||
| 66 | void project(const Template &src, Template &dst) const | 68 | void project(const Template &src, Template &dst) const |
| 67 | { | 69 | { |
| 68 | - GaussianBlur(src, dst, Size(0,0), sigma); | 70 | + if (!ROI) GaussianBlur(src, dst, Size(0,0), sigma); |
| 71 | + else { | ||
| 72 | + dst.m() = src.m(); | ||
| 73 | + foreach (const QRectF &rect, src.file.rects()) { | ||
| 74 | + Rect region(rect.x(), rect.y(), rect.width(), rect.height()); | ||
| 75 | + Mat input = dst.m(); | ||
| 76 | + Mat output = input.clone(); | ||
| 77 | + GaussianBlur(input(region), output(region), Size(0,0), sigma); | ||
| 78 | + dst.m() = output; | ||
| 79 | + } | ||
| 80 | + } | ||
| 69 | } | 81 | } |
| 70 | }; | 82 | }; |
| 71 | 83 |