summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Matteo Bernardini2020-01-20 14:50:55 +0100
committer Willy Sudiarto Raharjo2020-01-26 02:10:06 +0100
commit1a038dc95b8f16eef5cf2f9ea7a165851be8f3ed (patch)
treeefeae44d2ce9fb6d40bd06931db5a60159f746ad
parent5b252b0aa2eb7967c8f89bff86640b2690390341 (diff)
downloadslackbuilds-1a038dc95b8f16eef5cf2f9ea7a165851be8f3ed.tar.gz
libraries/frei0r: Disable opencv support.
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
-rw-r--r--libraries/frei0r/frei0r.SlackBuild12
-rw-r--r--libraries/frei0r/patches/01.b27f03c.patch27
-rw-r--r--libraries/frei0r/patches/02.35ed870.patch167
3 files changed, 9 insertions, 197 deletions
diff --git a/libraries/frei0r/frei0r.SlackBuild b/libraries/frei0r/frei0r.SlackBuild
index ce64a47e50..a78fc62f3f 100644
--- a/libraries/frei0r/frei0r.SlackBuild
+++ b/libraries/frei0r/frei0r.SlackBuild
@@ -41,10 +41,12 @@
# *Updated for 1.6.1
# Jan 1st, 2020
# *Updated for 1.7.0
+# Jan 20th, 2020
+# *Disabled opencv support
PRGNAM=frei0r
VERSION=${VERSION:-1.7.0}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -89,9 +91,12 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-# Apply upstream patches
-for i in $CWD/patches/* ; do patch -p1 < $i ; done
+# Apply upstream patches if present
+if [ -d $CWD/patches ]; then
+ for i in $CWD/patches/* ; do patch -p1 < $i ; done
+fi
+# Disable opencv support, not compatible with 4.2.x
mkdir -p build
cd build
cmake \
@@ -99,6 +104,7 @@ cd build
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -std=c++11" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=/usr/lib$LIBDIRSUFFIX \
+ -DWITHOUT_OPENCV=1 \
-DCMAKE_BUILD_TYPE=Release ..
make
make install DESTDIR=$PKG
diff --git a/libraries/frei0r/patches/01.b27f03c.patch b/libraries/frei0r/patches/01.b27f03c.patch
deleted file mode 100644
index 49b8e017b6..0000000000
--- a/libraries/frei0r/patches/01.b27f03c.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From b27f03c8d51c34cd5f79e0399bb0024ca94ea813 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= <zmoelnig@iem.at>
-Date: Tue, 10 Dec 2019 15:01:52 +0100
-Subject: [PATCH] facedetect: include imgproc/imgproc_c.h when using OpenCV-4+
-
-imgproc_c.h defines the constants CV_BGR2GRAY, CV_FILLED & CV_AA.
-
-it also includes "core/core_c.h", which then provides
- `cvGetTickCount()` and `cvGetTickFrequency()`
----
- src/filter/facedetect/facedetect.cpp | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/filter/facedetect/facedetect.cpp b/src/filter/facedetect/facedetect.cpp
-index 1906962..4e7d476 100644
---- a/src/filter/facedetect/facedetect.cpp
-+++ b/src/filter/facedetect/facedetect.cpp
-@@ -21,6 +21,9 @@
- #include <stdio.h>
- #include <string.h>
- #include <opencv2/opencv.hpp>
-+#if CV_MAJOR_VERSION >= 4
-+# include <opencv2/imgproc/imgproc_c.h>
-+#endif
- #include "frei0r.hpp"
- #include "frei0r_math.h"
-
diff --git a/libraries/frei0r/patches/02.35ed870.patch b/libraries/frei0r/patches/02.35ed870.patch
deleted file mode 100644
index d2f9c629bb..0000000000
--- a/libraries/frei0r/patches/02.35ed870.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-From 35ed870a3b4e7977119272d3232aaa947bea22ac Mon Sep 17 00:00:00 2001
-From: kwizart <kwizart@gmail.com>
-Date: Mon, 30 Dec 2019 14:44:51 +0100
-Subject: [PATCH] Update facebl0r to c++ api
-
-Signed-off-by: kwizart <kwizart@gmail.com>
----
- src/filter/facebl0r/facebl0r.cpp | 56 ++++++++++++++++++--------------
- 1 file changed, 32 insertions(+), 24 deletions(-)
-
-diff --git a/src/filter/facebl0r/facebl0r.cpp b/src/filter/facebl0r/facebl0r.cpp
-index 17446cc..ba146d0 100644
---- a/src/filter/facebl0r/facebl0r.cpp
-+++ b/src/filter/facebl0r/facebl0r.cpp
-@@ -18,7 +18,11 @@
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
--#include <opencv2/opencv.hpp>
-+#include <opencv2/core.hpp>
-+#include <opencv2/imgproc/imgproc_c.h>
-+#include <opencv2/imgproc.hpp>
-+#include <opencv2/objdetect.hpp>
-+#include <opencv2/video/tracking.hpp>
- #include "frei0r.hpp"
- #include "frei0r_math.h"
-
-@@ -30,7 +34,7 @@ typedef struct {
-
- CvHistogram* hist; //histogram of hue in original face image
-
-- CvRect prev_rect; //location of face in previous frame
-+ cv::Rect prev_rect; //location of face in previous frame
- CvBox2D curr_box; //current face location estimate
- } TrackedObj;
-
-@@ -53,7 +57,7 @@ class FaceBl0r: public frei0r::filter {
- void update_hue_image (const IplImage* image, TrackedObj* imgs);
-
- //trackface
-- CvRect* detect_face (IplImage*, CvHaarClassifierCascade*, CvMemStorage*);
-+ CvRect* detect_face (IplImage*, cv::CascadeClassifier&, CvMemStorage*);
-
-
- TrackedObj* tracked_obj;
-@@ -63,7 +67,7 @@ class FaceBl0r: public frei0r::filter {
- //used by capture_video_frame, so we don't have to keep creating.
- IplImage* image;
-
-- CvHaarClassifierCascade* cascade;
-+ cv::CascadeClassifier cascade;
- CvMemStorage* storage;
-
- // plugin parameters
-@@ -96,7 +100,7 @@ FaceBl0r::FaceBl0r(int wdt, int hgt) {
- tracked_obj = 0;
- face_found = 0;
-
-- cascade = 0;
-+ //cascade = 0;
- storage = 0;
-
- classifier = "/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml";
-@@ -124,7 +128,7 @@ FaceBl0r::~FaceBl0r() {
- if(tracked_obj)
- destroy_tracked_object(tracked_obj);
-
-- if(cascade) cvReleaseHaarClassifierCascade(&cascade);
-+ //if(cascade) cvReleaseHaarClassifierCascade(&cascade);
- if(storage) cvReleaseMemStorage(&storage);
-
- }
-@@ -133,7 +137,7 @@ void FaceBl0r::update(double time,
- uint32_t* out,
- const uint32_t* in) {
-
-- if (!cascade) {
-+ if (cascade.empty()) {
- cvSetNumThreads(cvRound(threads * 100));
- if (classifier.length() > 0) {
- if (classifier == old_classifier) {
-@@ -142,8 +146,7 @@ void FaceBl0r::update(double time,
- return;
- } else old_classifier = classifier;
-
-- cascade = (CvHaarClassifierCascade*) cvLoad(classifier.c_str(), 0, 0, 0 );
-- if (!cascade) {
-+ if (!cascade.load(classifier.c_str())) {
- fprintf(stderr, "ERROR in filter facebl0r, classifier cascade not found:\n");
- fprintf(stderr, " %s\n", classifier.c_str());
- memcpy(out, in, size * 4);
-@@ -234,30 +237,33 @@ void FaceBl0r::update(double time,
-
- /* Given an image and a classider, detect and return region. */
- CvRect* FaceBl0r::detect_face (IplImage* image,
-- CvHaarClassifierCascade* cascade,
-+ cv::CascadeClassifier &cascade,
- CvMemStorage* storage) {
-
- CvRect* rect = 0;
-+ std::vector<cv::Rect> faces;
-+ cv::Mat gray_mat;
-
-- if (cascade && storage) {
-+ if (!cascade.empty() && storage) {
- //use an equalized gray image for better recognition
- IplImage* gray = cvCreateImage(cvSize(image->width, image->height), 8, 1);
- cvCvtColor(image, gray, CV_BGR2GRAY);
- cvEqualizeHist(gray, gray);
- cvClearMemStorage(storage);
-+ gray_mat = cv::cvarrToMat(&gray);
-
- //get a sequence of faces in image
- int min = cvRound(smallest * 1000);
-- CvSeq *faces = cvHaarDetectObjects(gray, cascade, storage,
-+ cascade.detectMultiScale(gray_mat, faces,
- search_scale * 10.0,
- cvRound(neighbors * 100),
-- CV_HAAR_FIND_BIGGEST_OBJECT|//since we track only the first, get the biggest
-- CV_HAAR_DO_CANNY_PRUNING, //skip regions unlikely to contain a face
-- cvSize(min, min));
-+ cv::CASCADE_FIND_BIGGEST_OBJECT|//since we track only the first, get the biggest
-+ cv::CASCADE_DO_CANNY_PRUNING, //skip regions unlikely to contain a face
-+ cvSize(min,min));
-
- //if one or more faces are detected, return the first one
-- if(faces && faces->total)
-- rect = (CvRect*) cvGetSeqElem(faces, 0);
-+ if(faces.size() > 0)
-+ rect = (CvRect*) &faces.front();
-
- cvReleaseImage(&gray);
- }
-@@ -321,7 +327,7 @@ void FaceBl0r::destroy_tracked_object (TrackedObj* obj) {
-
- /* Given an image and tracked object, return box position. */
- CvBox2D FaceBl0r::camshift_track_face (IplImage* image, TrackedObj* obj) {
-- CvConnectedComp components;
-+ //CvConnectedComp components;
-
- //create a new hue image
- update_hue_image(image, obj);
-@@ -330,16 +336,18 @@ CvBox2D FaceBl0r::camshift_track_face (IplImage* image, TrackedObj* obj) {
- cvCalcBackProject(&obj->hue, obj->prob, obj->hist);
- cvAnd(obj->prob, obj->mask, obj->prob, 0);
-
-+ cv::Mat obj_prob_mat = cv::cvarrToMat(&obj->prob);
-+
- //use CamShift to find the center of the new face probability
-- cvCamShift(obj->prob, obj->prev_rect,
-- cvTermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 10, 1),
-- &components, &obj->curr_box);
-+ cv::RotatedRect rot_rect = cv::CamShift(obj_prob_mat, obj->prev_rect,
-+ cvTermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 10, 1));
-+ // &components, &obj->curr_box);
-
- //update face location and angle
-- obj->prev_rect = components.rect;
-- obj->curr_box.angle = -obj->curr_box.angle;
-+ //obj->prev_rect = components.rect;
-+ //obj->curr_box.angle = -obj->curr_box.angle;
-
-- return obj->curr_box;
-+ return rot_rect;
- }
-
- void FaceBl0r::update_hue_image (const IplImage* image, TrackedObj* obj) {