Commit fc3867a78e6c308dfdcf7878c1f747de6dd8fd3b

Authored by Josh Klontz
1 parent 75bfbaec

improved DrawTransform

sdk/openbr_plugin.cpp
@@ -227,6 +227,24 @@ QList<QPointF> File::landmarks() const @@ -227,6 +227,24 @@ QList<QPointF> File::landmarks() const
227 return landmarks; 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 void File::appendLandmark(const QPointF &landmark) 248 void File::appendLandmark(const QPointF &landmark)
231 { 249 {
232 QList<QVariant> newLandmarks = m_metadata["Landmarks"].toList(); 250 QList<QVariant> newLandmarks = m_metadata["Landmarks"].toList();
sdk/openbr_plugin.h
@@ -204,6 +204,7 @@ struct BR_EXPORT File @@ -204,6 +204,7 @@ struct BR_EXPORT File
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. */ 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 QList<QPointF> landmarks() const; /*!< \brief Returns the file's landmark list. */ 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 void appendLandmark(const QPointF &landmark); /*!< \brief Adds a landmark to the file's landmark list. */ 208 void appendLandmark(const QPointF &landmark); /*!< \brief Adds a landmark to the file's landmark list. */
208 void appendLandmarks(const QList<QPointF> &landmarks); /*!< \brief Adds landmarks to the file's landmark list. */ 209 void appendLandmarks(const QList<QPointF> &landmarks); /*!< \brief Adds landmarks to the file's landmark list. */
209 inline void clearLandmarks() { m_metadata["Landmarks"] = QList<QVariant>(); } /*!< \brief Clears the file's landmark list. */ 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,6 +44,9 @@ class DrawTransform : public UntrainableTransform
44 QList<Point2f> landmarks = OpenCVUtils::toPoints(src.file.landmarks()); 44 QList<Point2f> landmarks = OpenCVUtils::toPoints(src.file.landmarks());
45 foreach (const Point2f &landmark, landmarks) 45 foreach (const Point2f &landmark, landmarks)
46 circle(dst, landmark, 3, color, -1); 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 QList<Rect> ROIs = OpenCVUtils::toRects(src.file.ROIs()); 50 QList<Rect> ROIs = OpenCVUtils::toRects(src.file.ROIs());
48 foreach (const Rect ROI, ROIs) 51 foreach (const Rect ROI, ROIs)
49 rectangle(dst, ROI, color); 52 rectangle(dst, ROI, color);