Import of pkgsrc-2016Q3

This commit is contained in:
2016-10-14 07:49:11 +02:00
committed by Lionel Sambuc
parent 9d819b6d54
commit 1242aa1e36
35952 changed files with 949749 additions and 377083 deletions

View File

@@ -1,9 +1,9 @@
# $NetBSD: Makefile,v 1.27 2015/04/25 14:23:16 tnn Exp $
# $NetBSD: Makefile,v 1.30 2016/03/29 10:14:05 markd Exp $
#
PKGNAME= libkface-4.4.0
PKGNAME= libkface-4.13.0
PKGREVISION= 2
DISTNAME= digikam-4.4.0
DISTNAME= digikam-4.13.0
CATEGORIES= graphics
MASTER_SITES= ${MASTER_SITE_KDE:=digikam/}
EXTRACT_SUFX= .tar.bz2
@@ -17,6 +17,7 @@ BUILD_DEPENDS+= automoc4>=0.9.83:../../devel/automoc4
USE_LANGUAGES= c c++
USE_TOOLS+= pkg-config
CMAKE_ARGS+= -DENABLE_OPENCV3:BOOL=ON
PKGCONFIG_OVERRIDE+= libkface.pc.cmake
@@ -24,5 +25,6 @@ WRKSRC= ${WRKDIR}/${DISTNAME}/extra/libkface
.include "../../meta-pkgs/kde4/kde4.mk"
.include "../../graphics/opencv/buildlink3.mk"
.include "../../graphics/opencv-contrib-face/buildlink3.mk"
.include "../../x11/kdelibs4/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

View File

@@ -1,15 +1,18 @@
@comment $NetBSD: PLIST,v 1.2 2013/11/10 03:19:27 markd Exp $
@comment $NetBSD: PLIST,v 1.3 2015/11/03 20:28:57 markd Exp $
include/libkface/dataproviders.h
include/libkface/facedetector.h
include/libkface/identity.h
include/libkface/libkface_export.h
include/libkface/recognitiondatabase.h
include/libkface/version.h
lib/cmake/Kface-3.5.0/Kface-export-relwithdebinfo.cmake
lib/cmake/Kface-3.5.0/Kface-export.cmake
lib/cmake/Kface-3.5.0/kface-config-version.cmake
lib/cmake/Kface-3.5.0/kface-config.cmake
lib/libkface.so
lib/libkface.so.2
lib/libkface.so.2.0.0
lib/libkface.so.3
lib/libkface.so.3.0.0
lib/pkgconfig/libkface.pc
share/kde/apps/cmake/modules/FindKface.cmake
share/kde/apps/libkface/alignment-congealing/face-funnel.data
share/kde/apps/libkface/database/dbconfig.xml
share/kde/apps/libkface/haarcascades/haarcascade_frontalface_alt.xml

View File

@@ -1,4 +1,4 @@
# $NetBSD: buildlink3.mk,v 1.22 2015/04/25 14:23:16 tnn Exp $
# $NetBSD: buildlink3.mk,v 1.23 2016/03/05 11:27:49 jperkin Exp $
BUILDLINK_TREE+= libkface
@@ -6,7 +6,7 @@ BUILDLINK_TREE+= libkface
LIBKFACE_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.libkface+= libkface>=2.5.0
BUILDLINK_ABI_DEPENDS.libkface?= libkface>=4.4.0nb2
BUILDLINK_ABI_DEPENDS.libkface?= libkface>=4.13.0nb1
BUILDLINK_PKGSRCDIR.libkface?= ../../graphics/libkface
.include "../../graphics/opencv/buildlink3.mk"

View File

@@ -1,5 +1,14 @@
$NetBSD: distinfo,v 1.5 2014/11/15 20:58:04 markd Exp $
$NetBSD: distinfo,v 1.7 2016/03/29 10:14:05 markd Exp $
SHA1 (digikam-4.4.0.tar.bz2) = 1feb43120addda314e09761440ec2058e430171c
RMD160 (digikam-4.4.0.tar.bz2) = 540f243361aba3c95b675c05f84d8d60efab1948
Size (digikam-4.4.0.tar.bz2) = 68871203 bytes
SHA1 (digikam-4.13.0.tar.bz2) = d696ac88dcb3bcbd3a5da83b0fbe5e7315a43f92
RMD160 (digikam-4.13.0.tar.bz2) = 11d6aa15a94cd38acca79f2a31f65393a01a2b0b
SHA512 (digikam-4.13.0.tar.bz2) = 0cadb55f568a34d07f008791ca351428f4cd9e7060ba79aa8acc25e5e38f0bbcd586df764dacbcb9d1dadb56d2fb9160760cc89aeab4d7cef9bdbd26f691752b
Size (digikam-4.13.0.tar.bz2) = 69554099 bytes
SHA1 (patch-CMakeLists.txt) = a5c798fc35127996d38ce1103c7b321108f56eaa
SHA1 (patch-README) = 520dd6ee6562b708fb96adf6bf209056adb5d159
SHA1 (patch-libkface_CMakeLists.txt) = d183bcfa09244984350fa0ae2957d877618b2d0d
SHA1 (patch-libkface_detection_opencvfacedetector.cpp) = e8a31a469df3f0bc4d3f3bb2c3864a0913985fab
SHA1 (patch-libkface_libopencv.h.cmake.in) = 354103b0be8e202630059dc438af9d03837bed72
SHA1 (patch-libkface_recognition-opencv-lbph_facerec_borrowed.cpp) = 29d390a44a52daf15e7bfd8f2b7e7ee73d59f45a
SHA1 (patch-libkface_recognition-opencv-lbph_facerec_borrowed.h) = 96e28212344df9bd749ed8db69d877a0aba3c140
SHA1 (patch-libkface_recognition-opencv-lbph_lbphfacemodel.cpp) = c181d1b94948f7988081b09e3c2bf3190eaf046e

View File

@@ -0,0 +1,29 @@
$NetBSD: patch-CMakeLists.txt,v 1.1 2015/11/03 20:28:57 markd Exp $
opencv3 support. https://bugs.kde.org/show_bug.cgi?id=349601
--- CMakeLists.txt.orig 2015-09-03 21:22:44.000000000 +0000
+++ CMakeLists.txt
@@ -10,6 +10,8 @@ project(libkface)
message(STATUS "----------------------------------------------------------------------------------")
message(STATUS "Starting CMake configuration for: libkface")
+option(ENABLE_OPENCV3 "Build libkface with OpenCV3 instead OpenCV2 (default=OFF)" OFF)
+
find_package(Qt4 4.6.0 REQUIRED)
find_package(KDE4 REQUIRED)
@@ -30,7 +32,12 @@ add_definitions(-DKDE_DEFAULT_DEBUG_AREA
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
include(MacroOpenCV)
-DETECT_OPENCV(2.4.9 core highgui objdetect contrib legacy imgproc)
+
+if (ENABLE_OPENCV3)
+ DETECT_OPENCV(3.0.0 core face highgui objdetect imgproc)
+else()
+ DETECT_OPENCV(2.4.9 core highgui objdetect contrib legacy imgproc)
+endif()
include_directories(${OpenCV_INCLUDE_DIRS})

View File

@@ -0,0 +1,18 @@
$NetBSD: patch-README,v 1.1 2015/11/03 20:28:57 markd Exp $
opencv3 support. https://bugs.kde.org/show_bug.cgi?id=349601
--- README.orig 2015-09-03 21:22:44.000000000 +0000
+++ README
@@ -21,6 +21,11 @@ libqt >= 4.6.x h
libkde >= 4.4.x http://www.kde.org
libopencv >= 2.4.9 http://opencv.willowgarage.com/wiki (with opencv 'haarcascades' data files)
+CMake compilation options to custom libkface:
+
+Use CMake "-DENABLE_OPENCV3=on" flag to compile libkface source code using OpenCV3 instead OpenCV2 (disabled by default).
+ OpenCV3 support needs extra contrib modules package, especially 'face' ands 'legacy' components.
+
-- INSTALL ------------------------------------------------------------
In order to compile, especially when QT3/Qt4 are installed at the same time,

View File

@@ -0,0 +1,22 @@
$NetBSD: patch-libkface_CMakeLists.txt,v 1.1 2015/11/03 20:28:57 markd Exp $
opencv3 support. https://bugs.kde.org/show_bug.cgi?id=349601
--- libkface/CMakeLists.txt.orig 2015-09-03 21:22:44.000000000 +0000
+++ libkface/CMakeLists.txt
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2010-2014, Gilles Caulier, <caulier dot gilles at gmail dot com>
+# Copyright (c) 2010-2015, Gilles Caulier, <caulier dot gilles at gmail dot com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
@@ -52,7 +52,7 @@ target_link_libraries(kface ${KDE4_KDECO
${QT_QTXML_LIBRARY}
${QT_QTSQL_LIBRARY}
- ${OpenCV_LIBRARIES}
+ ${OpenCV_LIBRARIES} -lopencv_face
)
set_target_properties(kface PROPERTIES VERSION ${KFACE_LIB_SO_VERSION_STRING}

View File

@@ -0,0 +1,31 @@
$NetBSD: patch-libkface_detection_opencvfacedetector.cpp,v 1.1 2015/11/03 20:28:57 markd Exp $
opencv3 support. https://bugs.kde.org/show_bug.cgi?id=349601
--- libkface/detection/opencvfacedetector.cpp.orig 2015-09-03 21:22:44.000000000 +0000
+++ libkface/detection/opencvfacedetector.cpp
@@ -18,7 +18,7 @@
* <a href="alexjironkin at gmail dot com">alexjironkin at gmail dot com</a>
* @author Copyright (C) 2010 by Aditya Bhatt
* <a href="adityabhatt at gmail dot com">adityabhatt at gmail dot com</a>
- * @author Copyright (C) 2010-2014 by Gilles Caulier
+ * @author Copyright (C) 2010-2015 by Gilles Caulier
* <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a>
* @author Copyright (C) 2010-2013 by Marcel Wiesweg
* <a href="mailto:marcel dot wiesweg at gmx dot de">marcel dot wiesweg at gmx dot de</a>
@@ -136,13 +136,14 @@ public:
cv::Size getOriginalWindowSize() const
{
+#if OPENCV_VERSION <= OPENCV_MAKE_VERSION(2,4,11)
// This is a HACK which may break any time. Work around the fact that getOriginalWindowSize()
// always returns (0,0) and we need these values.
if (oldCascade)
{
return oldCascade->orig_window_size;
}
-
+#endif
return cv::Size(0, 0);
}

View File

@@ -0,0 +1,76 @@
$NetBSD: patch-libkface_libopencv.h.cmake.in,v 1.1 2015/11/03 20:28:57 markd Exp $
opencv3 support. https://bugs.kde.org/show_bug.cgi?id=349601
--- libkface/libopencv.h.cmake.in.orig 2015-09-03 21:22:44.000000000 +0000
+++ libkface/libopencv.h.cmake.in
@@ -7,7 +7,7 @@
* @date 2010-06-16
* @brief Wrapper for OpenCV header files
*
- * @author Copyright (C) 2012-2014 by Gilles Caulier
+ * @author Copyright (C) 2012-2015 by Gilles Caulier
* <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a>
*
* This program is free software; you can redistribute it
@@ -31,16 +31,16 @@
// Pragma directives to reduce warnings from OpenCV header files.
#if not defined(__APPLE__) && defined(__GNUC__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
-#pragma GCC diagnostic ignored "-Woverloaded-virtual"
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
+# pragma GCC diagnostic ignored "-Woverloaded-virtual"
#endif
#if defined(__APPLE__) && defined(__clang__)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wnon-virtual-dtor"
-#pragma clang diagnostic ignored "-Woverloaded-virtual"
-#pragma clang diagnostic ignored "-Wcast-align"
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wnon-virtual-dtor"
+# pragma clang diagnostic ignored "-Woverloaded-virtual"
+# pragma clang diagnostic ignored "-Wcast-align"
#endif
// OpenCV includes
@@ -51,23 +51,30 @@
#define OPENCV_VERSION OPENCV_MAKE_VERSION(CV_MAJOR_VERSION,CV_MINOR_VERSION,CV_SUBMINOR_VERSION)
#define OPENCV_TEST_VERSION(major,minor,patch) ( OPENCV_VERSION >= OPENCV_MAKE_VERSION(major,minor,patch) )
-#include <opencv2/core/core.hpp>
-#include <opencv2/core/internal.hpp>
-#include <opencv2/contrib/contrib.hpp>
+#if OPENCV_TEST_VERSION(3,0,0)
+# include <opencv2/face.hpp>
+# include <opencv2/core.hpp>
+#else
+# include <opencv2/core/core.hpp>
+# include <opencv2/core/internal.hpp>
+# include <opencv2/contrib/contrib.hpp>
+#endif
// for old-style code
+#if OPENCV_VERSION <= OPENCV_MAKE_VERSION(2,4,11)
+# include <opencv2/legacy/compat.hpp>
+#endif
#include <opencv2/opencv.hpp>
-#include <opencv2/legacy/compat.hpp>
#include <opencv2/highgui/highgui_c.h>
#include <opencv/cvaux.h>
// Restore warnings
#if not defined(__APPLE__) && defined(__GNUC__)
-#pragma GCC diagnostic pop
+# pragma GCC diagnostic pop
#endif
#if defined(__APPLE__) && defined(__clang__)
-#pragma clang diagnostic pop
+# pragma clang diagnostic pop
#endif
#endif // LIB_OPEN_CV_H

View File

@@ -0,0 +1,169 @@
$NetBSD: patch-libkface_recognition-opencv-lbph_facerec_borrowed.cpp,v 1.2 2016/03/29 10:14:05 markd Exp $
opencv3 support. https://bugs.kde.org/show_bug.cgi?id=349601
opencv3.1 - https://git.reviewboard.kde.org/r/126833/ with test reversed
--- libkface/recognition-opencv-lbph/facerec_borrowed.cpp.orig 2015-09-03 21:22:44.000000000 +0000
+++ libkface/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(InputArra
}
}
+#if OPENCV_VERSION < OPENCV_MAKE_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 int state) const
+#endif
{
if(m_histograms.empty())
{
@@ -394,8 +400,12 @@ void LBPHFaceRecognizer::predict(InputAr
m_grid_y, /* grid size y */
true /* normed histograms */
);
+#if OPENCV_VERSION < OPENCV_MAKE_VERSION(3,1,0)
minDist = DBL_MAX;
minClass = -1;
+#else
+ collector->init((int)m_histograms.size(), state);
+#endif
// This is the standard method
@@ -406,11 +416,19 @@ void LBPHFaceRecognizer::predict(InputAr
{
double dist = compareHist(m_histograms[sampleIdx], query, CV_COMP_CHISQR);
+#if OPENCV_VERSION < OPENCV_MAKE_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->emit(label, dist, state))
+ {
+ return;
+ }
+#endif
}
}
@@ -422,7 +440,7 @@ void LBPHFaceRecognizer::predict(InputAr
// 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(InputAr
double mean = sum / it->second.size();
s += QString("%1: %2 - ").arg(it->first).arg(mean);
+#if OPENCV_VERSION < OPENCV_MAKE_VERSION(3,1,0)
if((mean < minDist) && (mean < m_threshold))
{
minDist = mean;
minClass = it->first;
}
+#else
+ if (!collector->emit(it->first, mean, state))
+ {
+ return;
+ }
+#endif
}
kDebug() << s;
@@ -462,7 +487,7 @@ void LBPHFaceRecognizer::predict(InputAr
// 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(InputAr
scoreMap[it->second]++;
}
+#if OPENCV_VERSION < OPENCV_MAKE_VERSION(3,1,0)
minDist = 0;
+#endif
QString s("Nearest Neighbor score: ");
for (std::map<int,int>::iterator it = scoreMap.begin(); it != scoreMap.end(); ++it)
@@ -488,17 +515,26 @@ void LBPHFaceRecognizer::predict(InputAr
double score = double(it->second) / countMap.at(it->first);
s += QString("%1/%2 %3 ").arg(it->second).arg(countMap.at(it->first)).arg(score);
+#if OPENCV_VERSION < OPENCV_MAKE_VERSION(3,1,0)
if (score > minDist)
{
minDist = score;
minClass = it->first;
}
+#else
+ // large is better thus it is -score.
+ if (!collector->emit(it->first, -score, state))
+ {
+ return;
+ }
+#endif
}
kDebug() << s;
}
}
+#if OPENCV_VERSION < OPENCV_MAKE_VERSION(3,1,0)
int LBPHFaceRecognizer::predict(InputArray _src) const
{
int label;
@@ -506,6 +542,7 @@ int LBPHFaceRecognizer::predict(InputArr
predict(_src, label, dummy);
return label;
}
+#endif
// Static method ----------------------------------------------------
@@ -531,14 +568,16 @@ Ptr<LBPHFaceRecognizer> LBPHFaceRecogniz
return ptr;
}
-CV_INIT_ALGORITHM(LBPHFaceRecognizer, "FaceRecognizer.LBPH-KFaceIface",
- obj.info()->addParam(obj, "radius", obj.m_radius);
- obj.info()->addParam(obj, "neighbors", obj.m_neighbors);
- obj.info()->addParam(obj, "grid_x", obj.m_grid_x);
- obj.info()->addParam(obj, "grid_y", obj.m_grid_y);
- obj.info()->addParam(obj, "threshold", obj.m_threshold);
- obj.info()->addParam(obj, "histograms", obj.m_histograms); // modification: Make Read/Write
- obj.info()->addParam(obj, "labels", obj.m_labels); // modification: Make Read/Write
- obj.info()->addParam(obj, "statistic", obj.m_statisticsMode)); // modification: Add parameter
+#if OPENCV_VERSION <= OPENCV_MAKE_VERSION(2,4,11)
+ CV_INIT_ALGORITHM(LBPHFaceRecognizer, "FaceRecognizer.LBPH-KFaceIface",
+ obj.info()->addParam(obj, "radius", obj.m_radius);
+ obj.info()->addParam(obj, "neighbors", obj.m_neighbors);
+ obj.info()->addParam(obj, "grid_x", obj.m_grid_x);
+ obj.info()->addParam(obj, "grid_y", obj.m_grid_y);
+ obj.info()->addParam(obj, "threshold", obj.m_threshold);
+ obj.info()->addParam(obj, "histograms", obj.m_histograms); // modification: Make Read/Write
+ obj.info()->addParam(obj, "labels", obj.m_labels); // modification: Make Read/Write
+ obj.info()->addParam(obj, "statistic", obj.m_statisticsMode)); // modification: Add parameter
+#endif
} // namespace KFaceIface

View File

@@ -0,0 +1,100 @@
$NetBSD: patch-libkface_recognition-opencv-lbph_facerec_borrowed.h,v 1.2 2016/03/29 10:14:05 markd Exp $
opencv3 support. https://bugs.kde.org/show_bug.cgi?id=349601
opencv3.1 - https://git.reviewboard.kde.org/r/126833/ with test reversed
--- libkface/recognition-opencv-lbph/facerec_borrowed.h.orig 2015-09-03 21:22:44.000000000 +0000
+++ libkface/recognition-opencv-lbph/facerec_borrowed.h
@@ -45,7 +45,11 @@
namespace KFaceIface
{
+#if OPENCV_TEST_VERSION(3,0,0)
+class LBPHFaceRecognizer : public cv::face::FaceRecognizer
+#else
class LBPHFaceRecognizer : public cv::FaceRecognizer
+#endif
{
public:
@@ -99,8 +103,13 @@ public:
~LBPHFaceRecognizer() {}
+#if OPENCV_TEST_VERSION(3,0,0)
+ using cv::face::FaceRecognizer::save;
+ using cv::face::FaceRecognizer::load;
+#else
using cv::FaceRecognizer::save;
using cv::FaceRecognizer::load;
+#endif
static cv::Ptr<LBPHFaceRecognizer> create(int radius=1, int neighbors=8, int grid_x=8, int grid_y=8, double threshold = DBL_MAX, PredictionStatistics statistics = NearestNeighbor);
@@ -116,6 +125,8 @@ public:
*/
void update(cv::InputArrayOfArrays src, cv::InputArray labels);
+
+#if OPENCV_VERSION < OPENCV_MAKE_VERSION(3,1,0)
/**
* Predicts the label of a query image in src.
*/
@@ -125,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 int state = 0) const override;
+#endif
/**
* See FaceRecognizer::load().
@@ -139,6 +157,34 @@ public:
/**
* Getter functions.
*/
+#if OPENCV_TEST_VERSION(3,0,0)
+
+ int getNeighbors() const { return m_neighbors; }
+ void setNeighbors(int _neighbors) { m_neighbors = _neighbors; }
+
+ int getRadius() const { return m_radius; }
+ void setRadius(int radius) { m_radius = radius; }
+
+ int getGrid_x() const { return m_grid_x; }
+ void setGrid_x(int _grid_x) { m_grid_x = _grid_x; }
+
+ int getGrid_y() const { return m_grid_y; }
+ void setGrid_y(int _grid_y) { m_grid_y = _grid_y; }
+
+ double getThreshold() const { return m_threshold; }
+ void setThreshold(double _threshold) { m_threshold = _threshold; }
+
+ void setHistograms(std::vector<cv::Mat> _histograms) { m_histograms = _histograms; }
+ std::vector<cv::Mat> getHistograms() const { return m_histograms; }
+
+ void setLabels(cv::Mat _labels) { m_labels = _labels; }
+ cv::Mat getLabels() const { return m_labels; }
+
+ void setStatistic(int _statistic) { m_statisticsMode = _statistic; }
+ int getStatistic() const { return m_statisticsMode; }
+
+#else
+
int neighbors() const { return m_neighbors; }
int radius() const { return m_radius; }
int grid_x() const { return m_grid_x; }
@@ -147,6 +193,8 @@ public:
// NOTE: Implementation done through CV_INIT_ALGORITHM macro from OpenCV.
cv::AlgorithmInfo* info() const;
+#endif
+
private:
/** Computes a LBPH model with images in src and

View File

@@ -0,0 +1,155 @@
$NetBSD: patch-libkface_recognition-opencv-lbph_lbphfacemodel.cpp,v 1.1 2015/11/03 20:28:57 markd Exp $
opencv3 support. https://bugs.kde.org/show_bug.cgi?id=349601
--- libkface/recognition-opencv-lbph/lbphfacemodel.cpp.orig 2015-09-03 21:22:44.000000000 +0000
+++ libkface/recognition-opencv-lbph/lbphfacemodel.cpp
@@ -61,7 +61,11 @@ LBPHFaceModel::LBPHFaceModel()
: cv::Ptr<LBPHFaceRecognizer>(LBPHFaceRecognizer::create()),
databaseId(0)
{
+#if OPENCV_TEST_VERSION(3,0,0)
+ ptr()->setThreshold(100.0);
+#else
ptr()->set("threshold", 100.0);
+#endif
}
LBPHFaceModel::~LBPHFaceModel()
@@ -80,9 +84,13 @@ LBPHFaceRecognizer* LBPHFaceModel::ptr()
const LBPHFaceRecognizer* LBPHFaceModel::ptr() const
{
+#if OPENCV_TEST_VERSION(3,0,0)
+ const LBPHFaceRecognizer* const ptr = cv::Ptr<LBPHFaceRecognizer>::operator KFaceIface::LBPHFaceRecognizer*();
+#else
const LBPHFaceRecognizer* const ptr = cv::Ptr<LBPHFaceRecognizer>::operator const KFaceIface::LBPHFaceRecognizer*();
+#endif
- if (!ptr)
+ if (!ptr)
kWarning() << "LBPHFaceRecognizer pointer is null";
return ptr;
@@ -90,47 +98,83 @@ const LBPHFaceRecognizer* LBPHFaceModel:
int LBPHFaceModel::radius() const
{
+#if OPENCV_TEST_VERSION(3,0,0)
+ return ptr()->getRadius();
+#else
return ptr()->get<int>("radius");
+#endif
}
void LBPHFaceModel::setRadius(int radius)
{
+#if OPENCV_TEST_VERSION(3,0,0)
+ ptr()->setRadius(radius);
+#else
ptr()->set("radius", radius);
+#endif
}
int LBPHFaceModel::neighbors() const
{
+#if OPENCV_TEST_VERSION(3,0,0)
+ return ptr()->getNeighbors();
+#else
return ptr()->get<int>("neighbors");
+#endif
}
void LBPHFaceModel::setNeighbors(int neighbors)
{
+#if OPENCV_TEST_VERSION(3,0,0)
+ ptr()->setNeighbors(neighbors);
+#else
ptr()->set("neighbors", neighbors);
+#endif
}
int LBPHFaceModel::gridX() const
{
+#if OPENCV_TEST_VERSION(3,0,0)
+ return ptr()->getGrid_x();
+#else
return ptr()->get<int>("grid_x");
+#endif
}
void LBPHFaceModel::setGridX(int grid_x)
{
+#if OPENCV_TEST_VERSION(3,0,0)
+ ptr()->setGrid_x(grid_x);
+#else
ptr()->set("grid_x", grid_x);
+#endif
}
int LBPHFaceModel::gridY() const
{
+#if OPENCV_TEST_VERSION(3,0,0)
+ return ptr()->getGrid_y();
+#else
return ptr()->get<int>("grid_y");
+#endif
}
void LBPHFaceModel::setGridY(int grid_y)
{
+#if OPENCV_TEST_VERSION(3,0,0)
+ ptr()->setGrid_y(grid_y);
+#else
ptr()->set("grid_y", grid_y);
+#endif
}
OpenCVMatData LBPHFaceModel::histogramData(int index) const
{
+#if OPENCV_TEST_VERSION(3,0,0)
+ return OpenCVMatData(ptr()->getHistograms().at(index));
+#else
return OpenCVMatData(ptr()->get<std::vector<cv::Mat> >("histograms").at(index));
+#endif
}
QList<LBPHistogramMetadata> LBPHFaceModel::histogramMetadata() const
@@ -168,12 +212,24 @@ void LBPHFaceModel::setHistograms(const
m_histogramMetadata << metadata;
}
+#if OPENCV_TEST_VERSION(3,0,0)
+ std::vector<cv::Mat> currentHistograms = ptr()->getHistograms();
+ cv::Mat currentLabels = ptr()->getLabels();
+#else
std::vector<cv::Mat> currentHistograms = ptr()->get<std::vector<cv::Mat> >("histograms");
cv::Mat currentLabels = ptr()->get<cv::Mat>("labels");
+#endif
+
currentHistograms.insert(currentHistograms.end(), newHistograms.begin(), newHistograms.end());
currentLabels.push_back(newLabels);
+
+#if OPENCV_TEST_VERSION(3,0,0)
+ ptr()->setHistograms(currentHistograms);
+ ptr()->setLabels(currentLabels);
+#else
ptr()->set("histograms", currentHistograms);
- ptr()->set("labels", currentLabels);
+ ptr()->set("labels", currentLabels);
+#endif
/*
//Most cumbersome and inefficient way through a file storage which we were forced to use if we used standard OpenCV
@@ -215,7 +271,11 @@ void LBPHFaceModel::update(const std::ve
// Update local information
// We assume new labels are simply appended
+#if OPENCV_TEST_VERSION(3,0,0)
+ cv::Mat currentLabels = ptr()->getLabels();
+#else
cv::Mat currentLabels = ptr()->get<cv::Mat>("labels");
+#endif
for (int i = m_histogramMetadata.size() ; i < currentLabels.rows ; i++)
{