Commit e32b434d1bd12c6bfa9349460a3118639f930eb2

Authored by Josh Klontz
1 parent 569481dd

improved print transform

openbr/core/opencvutils.cpp
... ... @@ -157,6 +157,26 @@ Mat OpenCVUtils::toMatByRow(const QList<Mat> &src)
157 157 return dst;
158 158 }
159 159  
  160 +QString OpenCVUtils::depthToString(const Mat &m)
  161 +{
  162 + switch (m.depth()) {
  163 + case CV_8U: return "8U";
  164 + case CV_8S: return "8S";
  165 + case CV_16U: return "16U";
  166 + case CV_16S: return "16S";
  167 + case CV_32S: return "32S";
  168 + case CV_32F: return "32F";
  169 + case CV_64F: return "64F";
  170 + default: qFatal("Unknown matrix depth!");
  171 + }
  172 + return "?";
  173 +}
  174 +
  175 +QString OpenCVUtils::typeToString(const cv::Mat &m)
  176 +{
  177 + return depthToString(m) + "C" + QString::number(m.channels());
  178 +}
  179 +
160 180 QString OpenCVUtils::elemToString(const Mat &m, int r, int c)
161 181 {
162 182 assert(m.channels() == 1);
... ...
openbr/core/opencvutils.h
... ... @@ -39,6 +39,8 @@ namespace OpenCVUtils
39 39 cv::Mat toMatByRow(const QList<cv::Mat> &src); // Data organized one row per row
40 40  
41 41 // From image
  42 + QString depthToString(const cv::Mat &m);
  43 + QString typeToString(const cv::Mat &m);
42 44 QString elemToString(const cv::Mat &m, int r, int c);
43 45 QString matrixToString(const cv::Mat &m);
44 46 QStringList matrixToStringList(const cv::Mat &m);
... ...
openbr/plugins/algorithms.cpp
... ... @@ -50,7 +50,7 @@ class AlgorithmsInitializer : public Initializer
50 50 Globals->abbreviations.insert("SmallSIFT", "Open+LimitSize(512)+KeyPointDetector(SIFT)+KeyPointDescriptor(SIFT):KeyPointMatcher(BruteForce)");
51 51 Globals->abbreviations.insert("SmallSURF", "Open+LimitSize(512)+KeyPointDetector(SURF)+KeyPointDescriptor(SURF):KeyPointMatcher(BruteForce)");
52 52 Globals->abbreviations.insert("ColorHist", "Open+LimitSize(512)!EnsureChannels(3)+SplitChannels+Hist(256,0,8)+Cat+Normalize(L1):L2");
53   - Globals->abbreviations.insert("ImageClassification", "Open+LimitSize(128)+Cvt(Gray)+Gradient+Bin(0,360,9,true)+Merge+Integral+RecursiveIntegralSampler(4,2,8,Singleton(KMeans(1024)))+Cat+CvtFloat+Hist(1024):Dist(L1)");
  53 + Globals->abbreviations.insert("ImageClassification", "Open+CropSquare+LimitSize(256)+Cvt(Gray)+Gradient+Bin(0,360,9,true)+Merge+Integral+RecursiveIntegralSampler(4,2,8,Singleton(KMeans(1024)[fraction=0.2]))+Cat+Print+CvtFloat+Hist(1024):Dist(L1)");
54 54  
55 55 // Hash
56 56 Globals->abbreviations.insert("FileName", "Name+Identity:Identical");
... ...
openbr/plugins/misc.cpp
... ... @@ -68,8 +68,10 @@ class PrintTransform : public UntrainableMetaTransform
68 68 dst = src;
69 69 const QString nameString = src.file.flat();
70 70 const QString dataString = data ? OpenCVUtils::matrixToString(src)+"\n" : QString();
71   - if (error) qDebug("%s\n%s", qPrintable(nameString), qPrintable(dataString));
72   - else printf("%s\n%s", qPrintable(nameString), qPrintable(dataString));
  71 + QStringList matricies;
  72 + foreach (const Mat &m, src)
  73 + matricies.append(QString::number(m.rows) + "x" + QString::number(m.cols) + "_" + OpenCVUtils::typeToString(m));
  74 + fprintf(error ? stderr : stdout, "%s\n %s\n%s", qPrintable(nameString), qPrintable(matricies.join(",")), qPrintable(dataString));
73 75 }
74 76 };
75 77  
... ...