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,6 +157,26 @@ Mat OpenCVUtils::toMatByRow(const QList<Mat> &src)
157 return dst; 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 QString OpenCVUtils::elemToString(const Mat &m, int r, int c) 180 QString OpenCVUtils::elemToString(const Mat &m, int r, int c)
161 { 181 {
162 assert(m.channels() == 1); 182 assert(m.channels() == 1);
openbr/core/opencvutils.h
@@ -39,6 +39,8 @@ namespace OpenCVUtils @@ -39,6 +39,8 @@ namespace OpenCVUtils
39 cv::Mat toMatByRow(const QList<cv::Mat> &src); // Data organized one row per row 39 cv::Mat toMatByRow(const QList<cv::Mat> &src); // Data organized one row per row
40 40
41 // From image 41 // From image
  42 + QString depthToString(const cv::Mat &m);
  43 + QString typeToString(const cv::Mat &m);
42 QString elemToString(const cv::Mat &m, int r, int c); 44 QString elemToString(const cv::Mat &m, int r, int c);
43 QString matrixToString(const cv::Mat &m); 45 QString matrixToString(const cv::Mat &m);
44 QStringList matrixToStringList(const cv::Mat &m); 46 QStringList matrixToStringList(const cv::Mat &m);
openbr/plugins/algorithms.cpp
@@ -50,7 +50,7 @@ class AlgorithmsInitializer : public Initializer @@ -50,7 +50,7 @@ class AlgorithmsInitializer : public Initializer
50 Globals->abbreviations.insert("SmallSIFT", "Open+LimitSize(512)+KeyPointDetector(SIFT)+KeyPointDescriptor(SIFT):KeyPointMatcher(BruteForce)"); 50 Globals->abbreviations.insert("SmallSIFT", "Open+LimitSize(512)+KeyPointDetector(SIFT)+KeyPointDescriptor(SIFT):KeyPointMatcher(BruteForce)");
51 Globals->abbreviations.insert("SmallSURF", "Open+LimitSize(512)+KeyPointDetector(SURF)+KeyPointDescriptor(SURF):KeyPointMatcher(BruteForce)"); 51 Globals->abbreviations.insert("SmallSURF", "Open+LimitSize(512)+KeyPointDetector(SURF)+KeyPointDescriptor(SURF):KeyPointMatcher(BruteForce)");
52 Globals->abbreviations.insert("ColorHist", "Open+LimitSize(512)!EnsureChannels(3)+SplitChannels+Hist(256,0,8)+Cat+Normalize(L1):L2"); 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 // Hash 55 // Hash
56 Globals->abbreviations.insert("FileName", "Name+Identity:Identical"); 56 Globals->abbreviations.insert("FileName", "Name+Identity:Identical");
openbr/plugins/misc.cpp
@@ -68,8 +68,10 @@ class PrintTransform : public UntrainableMetaTransform @@ -68,8 +68,10 @@ class PrintTransform : public UntrainableMetaTransform
68 dst = src; 68 dst = src;
69 const QString nameString = src.file.flat(); 69 const QString nameString = src.file.flat();
70 const QString dataString = data ? OpenCVUtils::matrixToString(src)+"\n" : QString(); 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