31 #include <QtCore/QFile> 32 #include <QtCore/QTextStream> 33 #include <QtCore/QFileInfo> 51 QMultiMap<int, QSize>::const_iterator iterSizes = info.
objDetectedSizes_.constBegin();
53 for(QMultiMap<int, QTransform>::const_iterator iter = info.
objDetected_.constBegin(); iter!= info.
objDetected_.end();)
57 while(iter != info.
objDetected_.constEnd() &&
id == iter.key())
59 QString name = QString(
"object_%1%2").arg(
id).arg(info.
objDetected_.count(
id)>1?QString(index++):
"");
60 detections.
append(name.toStdString());
63 homography.
append(iter.value().m11());
64 homography.
append(iter.value().m12());
65 homography.
append(iter.value().m13());
66 homography.
append(iter.value().m21());
67 homography.
append(iter.value().m22());
68 homography.
append(iter.value().m23());
69 homography.
append(iter.value().m31());
70 homography.
append(iter.value().m32());
71 homography.
append(iter.value().m33());
72 root[name.toStdString()][
"width"] = iterSizes.value().width();
73 root[name.toStdString()][
"height"] = iterSizes.value().height();
74 root[name.toStdString()][
"homography"] = homography;
75 root[name.toStdString()][
"inliers"] = iterInliers.value();
76 root[name.toStdString()][
"outliers"] = iterOutliers.value();
77 root[name.toStdString()][
"filepath"] = iterFilePaths.value().toStdString();
79 if(!iterFilePaths.value().isEmpty())
81 QFileInfo file(iterFilePaths.value());
82 filename=file.fileName();
84 root[name.toStdString()][
"filename"] = filename.toStdString();
93 root[
"objects"] = detections;
99 const QMap<int, QMultiMap<int, int> > & matches = info.
matches_;
100 for(QMap<
int, QMultiMap<int, int> >::const_iterator iter = matches.constBegin();
101 iter != matches.end();
104 QString name = QString(
"matches_%1").arg(iter.key());
105 root[name.toStdString()] = iter.value().
size();
106 matchesValues.
append(name.toStdString());
108 root[
"matches"] = matchesValues;
115 file.open(QIODevice::WriteOnly | QIODevice::Text);
116 QTextStream out(&file);
117 out << styledWriter.
write(root).c_str();
QMultiMap< int, QString > objDetectedFilePaths_
virtual std::string write(const Value &root)
Serialize a Value in JSON format.
QMultiMap< int, QSize > objDetectedSizes_
QMap< int, QMultiMap< int, int > > matches_
QMultiMap< int, int > objDetectedInliersCount_
QMultiMap< int, QTransform > objDetected_
ArrayIndex size() const
Number of values in array or object.
QMultiMap< int, int > objDetectedOutliersCount_
ULogger class and convenient macros.
static void write(const DetectionInfo &info, const QString &path)
Writes a Value in JSON format in a human friendly way.
Value & append(const Value &value)
Append value to array at the end.