Commit e32b434d1bd12c6bfa9349460a3118639f930eb2
1 parent
569481dd
improved print transform
Showing
4 changed files
with
27 additions
and
3 deletions
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 | ... | ... |