Commit fc3867a78e6c308dfdcf7878c1f747de6dd8fd3b
1 parent
75bfbaec
improved DrawTransform
Showing
3 changed files
with
22 additions
and
0 deletions
sdk/openbr_plugin.cpp
| ... | ... | @@ -227,6 +227,24 @@ QList<QPointF> File::landmarks() const |
| 227 | 227 | return landmarks; |
| 228 | 228 | } |
| 229 | 229 | |
| 230 | +QList<QPointF> File::namedLandmarks() const | |
| 231 | +{ | |
| 232 | + QList<QPointF> landmarks; | |
| 233 | + QStringList keys = localMetadata().keys(); | |
| 234 | + foreach (const QString &key, keys) { | |
| 235 | + if (!key.endsWith("_X")) | |
| 236 | + continue; | |
| 237 | + QString keyBaseName = key.left(key.size()-2); | |
| 238 | + if (!keys.contains(keyBaseName+"_Y") || | |
| 239 | + keys.contains(keyBaseName+"_Width") || | |
| 240 | + keys.contains(keyBaseName+"_Height") || | |
| 241 | + keys.contains(keyBaseName+"_Radius")) | |
| 242 | + continue; | |
| 243 | + landmarks.append(QPointF(getFloat(keyBaseName+"_X"), getFloat(keyBaseName+"_Y"))); | |
| 244 | + } | |
| 245 | + return landmarks; | |
| 246 | +} | |
| 247 | + | |
| 230 | 248 | void File::appendLandmark(const QPointF &landmark) |
| 231 | 249 | { |
| 232 | 250 | QList<QVariant> newLandmarks = m_metadata["Landmarks"].toList(); | ... | ... |
sdk/openbr_plugin.h
| ... | ... | @@ -204,6 +204,7 @@ struct BR_EXPORT File |
| 204 | 204 | QString getString(const QString &key, const QString &defaultValue) const; /*!< \brief Returns a string value for the key, returning \em defaultValue if the key does not exist. */ |
| 205 | 205 | |
| 206 | 206 | QList<QPointF> landmarks() const; /*!< \brief Returns the file's landmark list. */ |
| 207 | + QList<QPointF> namedLandmarks() const; /*!< \brief Returns landmarks derived from metadata keys. */ | |
| 207 | 208 | void appendLandmark(const QPointF &landmark); /*!< \brief Adds a landmark to the file's landmark list. */ |
| 208 | 209 | void appendLandmarks(const QList<QPointF> &landmarks); /*!< \brief Adds landmarks to the file's landmark list. */ |
| 209 | 210 | inline void clearLandmarks() { m_metadata["Landmarks"] = QList<QVariant>(); } /*!< \brief Clears the file's landmark list. */ | ... | ... |
sdk/plugins/draw.cpp
| ... | ... | @@ -44,6 +44,9 @@ class DrawTransform : public UntrainableTransform |
| 44 | 44 | QList<Point2f> landmarks = OpenCVUtils::toPoints(src.file.landmarks()); |
| 45 | 45 | foreach (const Point2f &landmark, landmarks) |
| 46 | 46 | circle(dst, landmark, 3, color, -1); |
| 47 | + QList<Point2f> namedLandmarks = OpenCVUtils::toPoints(src.file.namedLandmarks()); | |
| 48 | + foreach (const Point2f &landmark, namedLandmarks) | |
| 49 | + circle(dst, landmark, 3, color); | |
| 47 | 50 | QList<Rect> ROIs = OpenCVUtils::toRects(src.file.ROIs()); |
| 48 | 51 | foreach (const Rect ROI, ROIs) |
| 49 | 52 | rectangle(dst, ROI, color); | ... | ... |