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,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 |