diff options
author | Andreas Sturmlechner <andreas.sturmlechner@gmail.com> | 2016-11-26 13:17:26 +0100 |
---|---|---|
committer | Michael Palimaka <kensington@gentoo.org> | 2016-11-27 05:04:32 +1100 |
commit | 477212f2d5063ef80d401d94ea2f68bb402a7e3d (patch) | |
tree | 673c96ef67ce134846345211bf0923415a6e3718 /kde-apps | |
parent | media-video/vlc: Drop USE=media-library, fix some ALSA issues (diff) | |
download | gentoo-477212f2d5063ef80d401d94ea2f68bb402a7e3d.tar.gz gentoo-477212f2d5063ef80d401d94ea2f68bb402a7e3d.tar.bz2 gentoo-477212f2d5063ef80d401d94ea2f68bb402a7e3d.zip |
kde-apps/libkface: Fix build with >=media-libs/opencv-3.1.0-r6
media-libs/opencv-3.1.0-r6 is using a contrib snapshot from git master
breaking API.
Gentoo-bug: 600238
Package-Manager: portage-2.3.0
Diffstat (limited to 'kde-apps')
-rw-r--r-- | kde-apps/libkface/files/libkface-16.08.3-opencv3.2-gentoo-3.1.patch | 167 | ||||
-rw-r--r-- | kde-apps/libkface/libkface-16.08.3.ebuild | 5 |
2 files changed, 170 insertions, 2 deletions
diff --git a/kde-apps/libkface/files/libkface-16.08.3-opencv3.2-gentoo-3.1.patch b/kde-apps/libkface/files/libkface-16.08.3-opencv3.2-gentoo-3.1.patch new file mode 100644 index 000000000000..abba02d69016 --- /dev/null +++ b/kde-apps/libkface/files/libkface-16.08.3-opencv3.2-gentoo-3.1.patch @@ -0,0 +1,167 @@ +diff --git a/src/recognition-opencv-lbph/facerec_borrowed.h b/src/recognition-opencv-lbph/facerec_borrowed.h +index 27ad77a..f197d22 100644 +--- a/src/recognition-opencv-lbph/facerec_borrowed.h ++++ b/src/recognition-opencv-lbph/facerec_borrowed.h +@@ -125,6 +125,8 @@ public: + */ + void update(cv::InputArrayOfArrays src, cv::InputArray labels); + ++ ++#if OPENCV_TEST_VERSION(3,1,0) + /** + * Predicts the label of a query image in src. + */ +@@ -134,6 +136,13 @@ public: + * Predicts the label and confidence for a given sample. + */ + void predict(cv::InputArray _src, int &label, double &dist) const; ++#else ++ using cv::face::FaceRecognizer::predict; ++ /* ++ * Predict ++ */ ++ void predict(cv::InputArray src, cv::Ptr<cv::face::PredictCollector> collector) const override; ++#endif + + /** + * See FaceRecognizer::load(). +diff --git a/src/recognition-opencv-lbph/facerec_borrowed.cpp b/src/recognition-opencv-lbph/facerec_borrowed.cpp +index 748691e..3c37ce2 100644 +--- a/src/recognition-opencv-lbph/facerec_borrowed.cpp ++++ b/src/recognition-opencv-lbph/facerec_borrowed.cpp +@@ -36,6 +36,8 @@ + * + * ============================================================ */ + ++#define QT_NO_EMIT ++ + #include "facerec_borrowed.h" + + // C++ includes +@@ -375,7 +377,11 @@ void LBPHFaceRecognizer::train(InputArrayOfArrays _in_src, InputArray _inm_label + } + } + ++#if OPENCV_TEST_VERSION(3,1,0) + void LBPHFaceRecognizer::predict(InputArray _src, int &minClass, double &minDist) const ++#else ++void LBPHFaceRecognizer::predict(cv::InputArray _src, cv::Ptr<cv::face::PredictCollector> collector) const ++#endif + { + if(m_histograms.empty()) + { +@@ -394,8 +400,12 @@ void LBPHFaceRecognizer::predict(InputArray _src, int &minClass, double &minDist + m_grid_y, /* grid size y */ + true /* normed histograms */ + ); ++#if OPENCV_TEST_VERSION(3,1,0) + minDist = DBL_MAX; + minClass = -1; ++#else ++ collector->init((int)m_histograms.size()); ++#endif + + // This is the standard method + +@@ -406,11 +416,19 @@ void LBPHFaceRecognizer::predict(InputArray _src, int &minClass, double &minDist + { + double dist = compareHist(m_histograms[sampleIdx], query, CV_COMP_CHISQR); + ++#if OPENCV_TEST_VERSION(3,1,0) + if((dist < minDist) && (dist < m_threshold)) + { + minDist = dist; + minClass = m_labels.at<int>((int) sampleIdx); + } ++#else ++ int label = m_labels.at<int>((int) sampleIdx); ++ if (!collector->collect(label, dist)) ++ { ++ return; ++ } ++#endif + } + } + +@@ -422,7 +440,7 @@ void LBPHFaceRecognizer::predict(InputArray _src, int &minClass, double &minDist + // Create map "label -> vector of distances to all histograms for this label" + std::map<int, std::vector<int> > distancesMap; + +- for(size_t sampleIdx = 0; sampleIdx < m_histograms.size(); sampleIdx++) ++ for(size_t sampleIdx = 0; sampleIdx < m_histograms.size(); sampleIdx++) + { + double dist = compareHist(m_histograms[sampleIdx], query, CV_COMP_CHISQR); + std::vector<int>& distances = distancesMap[m_labels.at<int>((int) sampleIdx)]; +@@ -445,11 +463,18 @@ void LBPHFaceRecognizer::predict(InputArray _src, int &minClass, double &minDist + double mean = sum / it->second.size(); + s += QString::fromLatin1("%1: %2 - ").arg(it->first).arg(mean); + ++#if OPENCV_TEST_VERSION(3,1,0) + if((mean < minDist) && (mean < m_threshold)) + { + minDist = mean; + minClass = it->first; + } ++#else ++ if (!collector->collect(it->first, mean)) ++ { ++ return; ++ } ++#endif + } + + qCDebug(LIBKFACE_LOG) << s; +@@ -462,7 +487,7 @@ void LBPHFaceRecognizer::predict(InputArray _src, int &minClass, double &minDist + // map "label -> number of histograms" + std::map<int, int> countMap; + +- for(size_t sampleIdx = 0; sampleIdx < m_histograms.size(); sampleIdx++) ++ for(size_t sampleIdx = 0; sampleIdx < m_histograms.size(); sampleIdx++) + { + int label = m_labels.at<int>((int) sampleIdx); + double dist = compareHist(m_histograms[sampleIdx], query, CV_COMP_CHISQR); +@@ -480,7 +505,9 @@ void LBPHFaceRecognizer::predict(InputArray _src, int &minClass, double &minDist + scoreMap[it->second]++; + } + ++#if OPENCV_TEST_VERSION(3,1,0) + minDist = 0; ++#endif + QString s = QString::fromLatin1("Nearest Neighbor score: "); + + for (std::map<int,int>::iterator it = scoreMap.begin(); it != scoreMap.end(); ++it) +@@ -488,17 +515,26 @@ void LBPHFaceRecognizer::predict(InputArray _src, int &minClass, double &minDist + double score = double(it->second) / countMap.at(it->first); + s += QString::fromLatin1("%1/%2 %3 ").arg(it->second).arg(countMap.at(it->first)).arg(score); + ++#if OPENCV_TEST_VERSION(3,1,0) + if (score > minDist) + { + minDist = score; + minClass = it->first; + } ++#else ++ // large is better thus it is -score. ++ if (!collector->collect(it->first, -score)) ++ { ++ return; ++ } ++#endif + } + + qCDebug(LIBKFACE_LOG) << s; + } + } + ++#if OPENCV_TEST_VERSION(3,1,0) + int LBPHFaceRecognizer::predict(InputArray _src) const + { + int label; +@@ -506,6 +542,7 @@ int LBPHFaceRecognizer::predict(InputArray _src) const + predict(_src, label, dummy); + return label; + } ++#endif + + // Static method ---------------------------------------------------- + diff --git a/kde-apps/libkface/libkface-16.08.3.ebuild b/kde-apps/libkface/libkface-16.08.3.ebuild index ea2fa9551b2c..5ae95e4dc7ed 100644 --- a/kde-apps/libkface/libkface-16.08.3.ebuild +++ b/kde-apps/libkface/libkface-16.08.3.ebuild @@ -19,11 +19,12 @@ DEPEND=" $(add_qt_dep qtsql) $(add_qt_dep qtwidgets) $(add_qt_dep qtxml) - media-libs/opencv:=[contrib(+)] + media-libs/opencv:= + || ( <media-libs/opencv-3.0.0 >=media-libs/opencv-3.1.0-r6[contrib] ) " RDEPEND="${DEPEND}" -PATCHES=( "${FILESDIR}/${PN}-15.12.2-opencv3.1.patch" ) +PATCHES=( "${FILESDIR}/${PN}-16.08.3-opencv3.2-gentoo-3.1.patch" ) # not upstreamable like that src_configure() { local mycmakeargs=( |