Commit 8d42878071184d4ff1d379fb63398ffe30b6d2fd
1 parent
e9c9e036
Add ROIFromPtsTransform
Showing
1 changed file
with
25 additions
and
0 deletions
openbr/plugins/crop.cpp
| ... | ... | @@ -69,6 +69,31 @@ BR_REGISTER(Transform, ROITransform) |
| 69 | 69 | |
| 70 | 70 | /*! |
| 71 | 71 | * \ingroup transforms |
| 72 | + * \brief Crops the rectangular regions of interest from given points and sizes. | |
| 73 | + * \author Austin Blanton \cite imaus10 | |
| 74 | + */ | |
| 75 | +class ROIFromPtsTransform : public UntrainableTransform | |
| 76 | +{ | |
| 77 | + Q_OBJECT | |
| 78 | + Q_PROPERTY(int width READ get_width WRITE set_width RESET reset_width STORED false) | |
| 79 | + Q_PROPERTY(int height READ get_height WRITE set_height RESET reset_height STORED false) | |
| 80 | + BR_PROPERTY(int, width, 1) | |
| 81 | + BR_PROPERTY(int, height, 1) | |
| 82 | + | |
| 83 | + void project(const Template &src, Template &dst) const | |
| 84 | + { | |
| 85 | + foreach (const QPointF &pt, src.file.points()) { | |
| 86 | + int x = pt.x() - (width/2); | |
| 87 | + int y = pt.y() - (height/2); | |
| 88 | + dst += src.m()(Rect(x, y, width, height)); | |
| 89 | + } | |
| 90 | + } | |
| 91 | +}; | |
| 92 | + | |
| 93 | +BR_REGISTER(Transform, ROIFromPtsTransform) | |
| 94 | + | |
| 95 | +/*! | |
| 96 | + * \ingroup transforms | |
| 72 | 97 | * \brief Resize the template |
| 73 | 98 | * \author Josh Klontz \cite jklontz |
| 74 | 99 | * \note Method: Area should be used for shrinking an image, Cubic for slow but accurate enlargment, Bilin for fast enlargement. | ... | ... |