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 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);
... ...