public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/frei0r-plugins] rawhide: Remove unused-patches
@ 2026-09-11 6:55 Nicolas Chauvet
0 siblings, 0 replies; only message in thread
From: Nicolas Chauvet @ 2026-09-11 6:55 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/frei0r-plugins
Branch : rawhide
Commit : 22fb1ded88388068e3d2f2efde34ae8ca544ef41
Author : Nicolas Chauvet <kwizart@gmail.com>
Date : 2026-09-11T08:54:19+02:00
Stats : +0/-821 in 7 file(s)
URL : https://src.fedoraproject.org/rpms/frei0r-plugins/c/22fb1ded88388068e3d2f2efde34ae8ca544ef41?branch=rawhide
Log:
Remove unused-patches
---
diff --git a/35ed870a3b4e7977119272d3232aaa947bea22ac.patch b/35ed870a3b4e7977119272d3232aaa947bea22ac.patch
deleted file mode 100644
index d2f9c62..0000000
--- a/35ed870a3b4e7977119272d3232aaa947bea22ac.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) {
diff --git a/7482c320b52956713d0b511771b23020fabd07a2.patch b/7482c320b52956713d0b511771b23020fabd07a2.patch
deleted file mode 100644
index 30d531c..0000000
--- a/7482c320b52956713d0b511771b23020fabd07a2.patch
+++ /dev/null
@@ -1,441 +0,0 @@
-From 7482c320b52956713d0b511771b23020fabd07a2 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
-Date: Wed, 1 Jan 2020 22:59:24 +0100
-Subject: [PATCH] Port facebl0r to OpenCV C++ API
-
-TrackedObj has been converted to a class, and the update_hue_image and
-camshift_track_face methods are now members of it, instead of passing
-the object as a parameter.
-
-Also, the various cv::Mat instances are kept, instead of destroying and
-recreating these on various occasions.
-
-The plugin now only accepts BGRA8888 as image format, as this is the
-expected layout throughout the code (default openCV channel order).
-
-The plugin has been tested using the following gstreamer pipeline:
-gst-launch-1.0 v4l2src ! image/jpeg,width=640,rate=1/15 \
- ! jpegdec ! videoconvert \
- ! frei0r-filter-facebl0r ellipse=1 \
- classifier=/usr/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml \
- ! videoconvert ! autovideosink
----
- src/filter/facebl0r/facebl0r.cpp | 292 +++++++++++--------------------
- 1 file changed, 102 insertions(+), 190 deletions(-)
-
-diff --git a/src/filter/facebl0r/facebl0r.cpp b/src/filter/facebl0r/facebl0r.cpp
-index 17446cc..96222d8 100644
---- a/src/filter/facebl0r/facebl0r.cpp
-+++ b/src/filter/facebl0r/facebl0r.cpp
-@@ -22,49 +22,49 @@
- #include "frei0r.hpp"
- #include "frei0r_math.h"
-
--typedef struct {
-- IplImage* hsv; //input image converted to HSV
-- IplImage* hue; //hue channel of HSV image
-- IplImage* mask; //image for masking pixels
-- IplImage* prob; //face probability estimates for each pixel
-+class TrackedObj {
-+public:
-+ void update_hist();
-+ void update_hue_image (const cv::Mat& image);
-+ cv::RotatedRect camshift_track_face();
-+
-+ cv::Mat hsv; //input image converted to HSV
-+ cv::Mat hue; //hue channel of HSV image
-+ cv::Mat mask; //image for masking pixels
-+ cv::Mat prob; //face probability estimates for each pixel
-
-- CvHistogram* hist; //histogram of hue in original face image
-+ cv::Mat hist; //histogram of hue in original face image
-+ static const int hist_bins; //number of histogram bins
-+ static const float hist_range[2]; //histogram range
-+
-+ cv::Rect prev_rect; //location of face in previous frame
-+ cv::RotatedRect curr_box; //current face location estimate
-+};
-
-- CvRect prev_rect; //location of face in previous frame
-- CvBox2D curr_box; //current face location estimate
--} TrackedObj;
-+const float TrackedObj::hist_range[2] = { 0, 180 };
-+const int TrackedObj::hist_bins = 30;
-
- class FaceBl0r: public frei0r::filter {
-
- public:
- FaceBl0r(int wdt, int hgt);
-- ~FaceBl0r();
-+ ~FaceBl0r() = default;
-
- void update(double time,
- uint32_t* out,
- const uint32_t* in);
-
- private:
--
--// camshift
-- TrackedObj* create_tracked_object (IplImage* image, CvRect* face_rect);
-- void destroy_tracked_object (TrackedObj* tracked_obj);
-- CvBox2D camshift_track_face (IplImage* image, TrackedObj* imgs);
-- void update_hue_image (const IplImage* image, TrackedObj* imgs);
--
-+
- //trackface
-- CvRect* detect_face (IplImage*, CvHaarClassifierCascade*, CvMemStorage*);
--
-+ std::vector<cv::Rect> detect_face();
-+
-+ TrackedObj tracked_obj;
-
-- TrackedObj* tracked_obj;
-- CvBox2D face_box; //area to draw
-- CvRect* face_rect;
--
- //used by capture_video_frame, so we don't have to keep creating.
-- IplImage* image;
-+ cv::Mat image;
-
-- CvHaarClassifierCascade* cascade;
-- CvMemStorage* storage;
-+ cv::CascadeClassifier cascade;
-
- // plugin parameters
- std::string classifier;
-@@ -77,7 +77,6 @@ class FaceBl0r: public frei0r::filter {
- double largest;
-
- std::string old_classifier;
--
-
- unsigned int face_found;
- unsigned int face_notfound;
-@@ -87,18 +86,12 @@ class FaceBl0r: public frei0r::filter {
- frei0r::construct<FaceBl0r> plugin("FaceBl0r",
- "automatic face blur",
- "ZioKernel, Biilly, Jilt, Jaromil, ddennedy",
-- 1,1, F0R_COLOR_MODEL_PACKED32);
-+ 1,1, F0R_COLOR_MODEL_BGRA8888);
-
- FaceBl0r::FaceBl0r(int wdt, int hgt) {
-
-- face_rect = 0;
-- image = 0;
-- tracked_obj = 0;
- face_found = 0;
--
-- cascade = 0;
-- storage = 0;
--
-+
- classifier = "/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml";
- register_param(classifier,
- "Classifier",
-@@ -120,52 +113,35 @@ FaceBl0r::FaceBl0r(int wdt, int hgt) {
- register_param(largest, "Largest", "Maximum object size in pixels, divided by 10000");
- }
-
--FaceBl0r::~FaceBl0r() {
-- if(tracked_obj)
-- destroy_tracked_object(tracked_obj);
--
-- if(cascade) cvReleaseHaarClassifierCascade(&cascade);
-- if(storage) cvReleaseMemStorage(&storage);
--
--}
--
- void FaceBl0r::update(double time,
- uint32_t* out,
-- const uint32_t* in) {
--
-- if (!cascade) {
-- cvSetNumThreads(cvRound(threads * 100));
-- if (classifier.length() > 0) {
-- if (classifier == old_classifier) {
-- // same as before, avoid repeating error messages
-- memcpy(out, in, size * 4); // of course assuming we are RGBA only
-- return;
-- } else old_classifier = classifier;
--
-- cascade = (CvHaarClassifierCascade*) cvLoad(classifier.c_str(), 0, 0, 0 );
-- if (!cascade) {
-- fprintf(stderr, "ERROR in filter facebl0r, classifier cascade not found:\n");
-- fprintf(stderr, " %s\n", classifier.c_str());
-- memcpy(out, in, size * 4);
-- return;
-- }
-- storage = cvCreateMemStorage(0);
-- }
-- else {
-- memcpy(out, in, size * 4);
-- return;
-- }
-- }
-+ const uint32_t* in)
-+{
-+ if (cascade.empty()) {
-+ cv::setNumThreads(cvRound(threads * 100));
-+ if (classifier.length() == 0 || classifier == old_classifier) {
-+ // same as before, avoid repeating error messages
-+ memcpy(out, in, size * 4); // of course assuming we are RGBA only
-+ return;
-+ }
-+ old_classifier = classifier;
-+ }
-+
-+ 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);
-+ return;
-+ }
-
- // sanitize parameters
- recheck = CLAMP(recheck, 0.001, 1.0);
- search_scale = CLAMP(search_scale, 0.11, 1.0);
- neighbors = CLAMP(neighbors, 0.01, 1.0);
-
-- if( !image )
-- image = cvCreateImage( cvSize(width,height), IPL_DEPTH_8U, 4 );
--
-- memcpy(image->imageData, in, size * 4);
-+ // copy input image to OpenCV
-+ image = cv::Mat(height, width, CV_8UC4, (void*)in);
-+ tracked_obj.update_hue_image(image);
-
- /*
- no face*
-@@ -176,27 +152,24 @@ void FaceBl0r::update(double time,
- no face*
- */
- if(face_notfound>0) {
--
-+ std::vector<cv::Rect> faces;
- if(face_notfound % cvRound(recheck * 1000) == 0)
-- face_rect = detect_face(image, cascade, storage);
-+ faces = detect_face();
-
- // if no face detected
-- if (!face_rect) {
-+ if (faces.empty()) {
- face_notfound++;
- } else {
-- //track detected face with camshift
-- if(tracked_obj)
-- destroy_tracked_object(tracked_obj);
-- tracked_obj = create_tracked_object(image, face_rect);
-+ tracked_obj.prev_rect = faces[0];
-+ tracked_obj.update_hist();
- face_notfound = 0;
- face_found++;
- }
--
- }
-
-- if(face_found>0) {
-+ if (face_found > 0) {
- //track the face in the new frame
-- face_box = camshift_track_face(image, tracked_obj);
-+ cv::RotatedRect face_box = tracked_obj.camshift_track_face();
-
- int min = cvRound(smallest * 1000);
- min = min? min : 10;
-@@ -210,17 +183,13 @@ void FaceBl0r::update(double time,
- face_notfound++;
- }
- else {
--////////////////////////////////////////////////////////////////////////
-- cvSetImageROI (image, tracked_obj->prev_rect);
--// cvSmooth (image, image, CV_BLUR, 22, 22, 0, 0);
-- cvSmooth (image, image, CV_BLUR, 23, 23, 0, 0);
--// cvSmooth (image, image, CV_GAUSSIAN, 11, 11, 0, 0);
-- cvResetImageROI (image);
--////////////////////////////////////////////////////////////////////////
--
-+ cv::Rect blur_region = tracked_obj.prev_rect & cv::Rect({0, 0}, image.size());
-+ cv::Mat blur(image, blur_region);
-+ cv::blur(blur, blur, {23, 23}, cv::Point(-1, -1));
-+
- //outline face ellipse
- if (ellipse)
-- cvEllipseBox(image, face_box, CV_RGB(255,0,0), 2, CV_AA, 0);
-+ cv::ellipse(image, face_box, CV_RGB(255,0,0), 2, cv::LINE_AA);
-
- face_found++;
- if(face_found % cvRound(recheck * 1000) == 0)
-@@ -228,133 +197,76 @@ void FaceBl0r::update(double time,
- }
- }
-
-- memcpy(out, image->imageData, size * 4);
-- cvReleaseImage(&image);
-+ memcpy(out, image.data, size * 4);
- }
-
- /* Given an image and a classider, detect and return region. */
--CvRect* FaceBl0r::detect_face (IplImage* image,
-- CvHaarClassifierCascade* cascade,
-- CvMemStorage* storage) {
--
-- CvRect* rect = 0;
--
-- if (cascade && storage) {
-+std::vector<cv::Rect> FaceBl0r::detect_face()
-+{
-+ if (cascade.empty()) {
-+ return std::vector<cv::Rect>();
-+ }
-+
- //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);
-+ cv::Mat gray;
-+ cv::cvtColor(image, gray, CV_BGR2GRAY);
-+ cv::equalizeHist(gray, gray);
-
- //get a sequence of faces in image
- int min = cvRound(smallest * 1000);
-- CvSeq *faces = cvHaarDetectObjects(gray, cascade, storage,
-+ std::vector<cv::Rect> faces;
-+ cascade.detectMultiScale(gray, 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));
--
-- //if one or more faces are detected, return the first one
-- if(faces && faces->total)
-- rect = (CvRect*) cvGetSeqElem(faces, 0);
-+ cv::Size(min, min));
-
-- cvReleaseImage(&gray);
-- }
--
-- return rect;
-+ return faces;
- }
-
--/* Create a camshift tracked object from a region in image. */
--TrackedObj* FaceBl0r::create_tracked_object (IplImage* image, CvRect* region) {
-- TrackedObj* obj;
--
-- //allocate memory for tracked object struct
-- if((obj = (TrackedObj *) malloc(sizeof *obj)) != NULL) {
-- //create-image: size(w,h), bit depth, channels
-- obj->hsv = cvCreateImage(cvGetSize(image), 8, 3);
-- obj->mask = cvCreateImage(cvGetSize(image), 8, 1);
-- obj->hue = cvCreateImage(cvGetSize(image), 8, 1);
-- obj->prob = cvCreateImage(cvGetSize(image), 8, 1);
--
-- int hist_bins = 30; //number of histogram bins
-- float hist_range[] = {0,180}; //histogram range
-- float* range = hist_range;
-- obj->hist = cvCreateHist(1, //number of hist dimensions
-- &hist_bins, //array of dimension sizes
-- CV_HIST_ARRAY, //representation format
-- &range, //array of ranges for bins
-- 1); //uniformity flag
-- }
--
-- //create a new hue image
-- update_hue_image(image, obj);
--
-- float max_val = 0.f;
--
-+void TrackedObj::update_hist()
-+{
- //create a histogram representation for the face
-- cvSetImageROI(obj->hue, *region);
-- cvSetImageROI(obj->mask, *region);
-- cvCalcHist(&obj->hue, obj->hist, 0, obj->mask);
-- cvGetMinMaxHistValue(obj->hist, 0, &max_val, 0, 0 );
-- cvConvertScale(obj->hist->bins, obj->hist->bins,
-- max_val ? 255.0/max_val : 0, 0);
-- cvResetImageROI(obj->hue);
-- cvResetImageROI(obj->mask);
--
-- //store the previous face location
-- obj->prev_rect = *region;
--
-- return obj;
--}
--
--/* Release resources from tracked object. */
--void FaceBl0r::destroy_tracked_object (TrackedObj* obj) {
-- cvReleaseImage(&obj->hsv);
-- cvReleaseImage(&obj->hue);
-- cvReleaseImage(&obj->mask);
-- cvReleaseImage(&obj->prob);
-- cvReleaseHist(&obj->hist);
-+ cv::Mat hue_roi(hue, prev_rect);
-+ cv::Mat mask_roi(mask, prev_rect);
-
-- free(obj);
-+ const float* range = hist_range;
-+ cv::calcHist(&hue_roi, 1, nullptr, mask_roi, hist, 1, &hist_bins, &range);
-+ normalize(hist, hist, 0, 255, cv::NORM_MINMAX);
- }
-
- /* Given an image and tracked object, return box position. */
--CvBox2D FaceBl0r::camshift_track_face (IplImage* image, TrackedObj* obj) {
-- CvConnectedComp components;
--
-- //create a new hue image
-- update_hue_image(image, obj);
--
-+cv::RotatedRect TrackedObj::camshift_track_face()
-+{
- //create a probability image based on the face histogram
-- cvCalcBackProject(&obj->hue, obj->prob, obj->hist);
-- cvAnd(obj->prob, obj->mask, obj->prob, 0);
-+ const float* range = hist_range;
-+ cv::calcBackProject(&hue, 1, nullptr, hist, prob, &range);
-+ prob &= mask;
-
- //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 curr_box = CamShift(prob, prev_rect,
-+ cv::TermCriteria(cv::TermCriteria::EPS | cv::TermCriteria::MAX_ITER, 10, 1 ));
-
-- //update face location and angle
-- obj->prev_rect = components.rect;
-- obj->curr_box.angle = -obj->curr_box.angle;
-+ //update face location
-+ prev_rect = curr_box.boundingRect();
-
-- return obj->curr_box;
-+ return curr_box;
- }
-
--void FaceBl0r::update_hue_image (const IplImage* image, TrackedObj* obj) {
-+void TrackedObj::update_hue_image (const cv::Mat& image) {
- //limits for calculating hue
- int vmin = 65, vmax = 256, smin = 55;
--
-+
- //convert to HSV color model
-- cvCvtColor(image, obj->hsv, CV_BGR2HSV);
--
-+ cv::cvtColor(image, hsv, CV_BGR2HSV);
-+
- //mask out-of-range values
-- cvInRangeS(obj->hsv, //source
-- cvScalar(0, smin, MIN(vmin, vmax), 0), //lower bound
-- cvScalar(180, 256, MAX(vmin, vmax) ,0), //upper bound
-- obj->mask); //destination
--
-+ cv::inRange(hsv, //source
-+ cv::Scalar(0, smin, MIN(vmin, vmax)), //lower bound
-+ cv::Scalar(180, 256, MAX(vmin, vmax)), //upper bound
-+ mask); //destination
-+
- //extract the hue channel, split: src, dest channels
-- cvSplit(obj->hsv, obj->hue, 0, 0, 0 );
-+ cv::extractChannel(hsv, hue, 0);
- }
diff --git a/Bump-opencv-to-2.3-c-API.patch b/Bump-opencv-to-2.3-c-API.patch
deleted file mode 100644
index 5a3e51d..0000000
--- a/Bump-opencv-to-2.3-c-API.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From fa445192a9e3091b837ad93fccca86075dab80b2 Mon Sep 17 00:00:00 2001
-From: Nicolas Chauvet <kwizart@gmail.com>
-Date: Mon, 25 May 2020 09:56:59 +0200
-Subject: [PATCH 4/4] Bump opencv to 2.3 (c++ API)
-
----
- configure.ac | 2 +-
- src/Makefile.am | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 42dd629..bd8b1cf 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -94,7 +94,7 @@ AC_FUNC_MALLOC
- AC_CHECK_FUNCS([floor memset pow sqrt])
-
- HAVE_OPENCV=false
--PKG_CHECK_MODULES(OPENCV, opencv >= 1.0.0, [HAVE_OPENCV=true], [true])
-+PKG_CHECK_MODULES(OPENCV, opencv >= 2.3, [HAVE_OPENCV=true], [true])
- AM_CONDITIONAL([HAVE_OPENCV], [test x$HAVE_OPENCV = xtrue])
- if test x$HAVE_OPENCV = xtrue; then
- # OPENCV_CFLAGS="$OPENCV_CFLAGS -DOPENCV_PREFIX=`pkg-config opencv --variable=prefix`"
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 9e8a9c4..c778312 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -156,11 +156,11 @@ endif
- if HAVE_OPENCV
- plugin_LTLIBRARIES += facebl0r.la
- facebl0r_la_SOURCES = filter/facebl0r/facebl0r.cpp
--facebl0r_la_CFLAGS = @OPENCV_CFLAGS@ @CFLAGS@
-+facebl0r_la_CFLAGS = @OPENCV_CXXFLAGS@ @CFLAGS@
- facebl0r_la_LIBADD = @OPENCV_LIBS@
- plugin_LTLIBRARIES += facedetect.la
- facedetect_la_SOURCES = filter/facedetect/facedetect.cpp
--facedetect_la_CFLAGS = @OPENCV_CFLAGS@ @CFLAGS@
-+facedetect_la_CFLAGS = @OPENCV_CXXFLAGS@ @CFLAGS@
- facedetect_la_LIBADD = @OPENCV_LIBS@
- endif
-
---
-2.25.4
-
diff --git a/Switch-to-OpenCV4-enums.patch b/Switch-to-OpenCV4-enums.patch
deleted file mode 100644
index 2c7b6b7..0000000
--- a/Switch-to-OpenCV4-enums.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 796d122587207afbf0c35c75edf6e9588edc0b99 Mon Sep 17 00:00:00 2001
-From: Nicolas Chauvet <kwizart@gmail.com>
-Date: Mon, 25 May 2020 09:51:16 +0200
-Subject: [PATCH 3/4] Switch to OpenCV4 enums
-
-Signed-off-by: Nicolas Chauvet <kwizart@gmail.com>
----
- src/filter/facebl0r/facebl0r.cpp | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/filter/facebl0r/facebl0r.cpp b/src/filter/facebl0r/facebl0r.cpp
-index 96222d8..fa21a35 100644
---- a/src/filter/facebl0r/facebl0r.cpp
-+++ b/src/filter/facebl0r/facebl0r.cpp
-@@ -209,7 +209,7 @@ std::vector<cv::Rect> FaceBl0r::detect_face()
-
- //use an equalized gray image for better recognition
- cv::Mat gray;
-- cv::cvtColor(image, gray, CV_BGR2GRAY);
-+ cv::cvtColor(image, gray, cv::COLOR_BGR2GRAY);
- cv::equalizeHist(gray, gray);
-
- //get a sequence of faces in image
-@@ -218,8 +218,8 @@ std::vector<cv::Rect> FaceBl0r::detect_face()
- cascade.detectMultiScale(gray, 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
-+ 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
- cv::Size(min, min));
-
- return faces;
-@@ -259,7 +259,7 @@ void TrackedObj::update_hue_image (const cv::Mat& image) {
- int vmin = 65, vmax = 256, smin = 55;
-
- //convert to HSV color model
-- cv::cvtColor(image, hsv, CV_BGR2HSV);
-+ cv::cvtColor(image, hsv, cv::COLOR_BGR2HSV);
-
- //mask out-of-range values
- cv::inRange(hsv, //source
---
-2.25.4
-
diff --git a/b27f03c8d51c34cd5f79e0399bb0024ca94ea813.patch b/b27f03c8d51c34cd5f79e0399bb0024ca94ea813.patch
deleted file mode 100644
index 49b8e01..0000000
--- a/b27f03c8d51c34cd5f79e0399bb0024ca94ea813.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/b4562db4ca20fefcce62dbe7b255c2b75951853e.patch b/b4562db4ca20fefcce62dbe7b255c2b75951853e.patch
deleted file mode 100644
index ac739dd..0000000
--- a/b4562db4ca20fefcce62dbe7b255c2b75951853e.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From b4562db4ca20fefcce62dbe7b255c2b75951853e Mon Sep 17 00:00:00 2001
-From: Raphael Graf <r@undefined.ch>
-Date: Thu, 5 Mar 2020 15:39:37 +0100
-Subject: [PATCH] facedetect: Support opencv4
-
----
- src/filter/facedetect/facedetect.cpp | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/src/filter/facedetect/facedetect.cpp b/src/filter/facedetect/facedetect.cpp
-index 1906962..580b53b 100644
---- a/src/filter/facedetect/facedetect.cpp
-+++ b/src/filter/facedetect/facedetect.cpp
-@@ -148,13 +148,13 @@ class FaceDetect: public frei0r::filter
- count = 1; // reset the recheck counter
- if (objects.size() > 0) // reset the list of objects
- objects.clear();
-- double elapsed = (double) cvGetTickCount();
-+ double elapsed = (double) cv::getTickCount();
-
- objects = detect();
-
- // use detection time to throttle frequency of re-detect vs. redraw (automatic recheck)
-- elapsed = cvGetTickCount() - elapsed;
-- elapsed = elapsed / ((double) cvGetTickFrequency() * 1000.0);
-+ elapsed = cv::getTickCount() - elapsed;
-+ elapsed = elapsed / ((double) cv::getTickFrequency() * 1000.0);
-
- // Automatic recheck uses an undocumented negative parameter value,
- // which is not compliant, but technically feasible.
-@@ -188,7 +188,7 @@ class FaceDetect: public frei0r::filter
- }
-
- // use an equalized grayscale to improve detection
-- cv::cvtColor(image_roi, gray, CV_BGR2GRAY);
-+ cv::cvtColor(image_roi, gray, cv::COLOR_BGR2GRAY);
-
- // use a smaller image to improve performance
- cv::resize(gray, small, cv::Size(cvRound(gray.cols * scale), cvRound(gray.rows * scale)));
-@@ -249,8 +249,8 @@ class FaceDetect: public frei0r::filter
- {
- cv::Rect* r = (cv::Rect*) &objects[i];
- cv::Point center;
-- int thickness = stroke <= 0? CV_FILLED : cvRound(stroke * 100);
-- int linetype = antialias? CV_AA : 8;
-+ int thickness = stroke <= 0? cv::FILLED : cvRound(stroke * 100);
-+ int linetype = antialias? cv::LINE_AA : 8;
-
- center.x = cvRound((r->x + r->width * 0.5) / scale);
- center.y = cvRound((r->y + r->height * 0.5) / scale);
diff --git a/b8d4e0595c8134b2b3c7e82ecb8da36c9354f68a.patch b/b8d4e0595c8134b2b3c7e82ecb8da36c9354f68a.patch
deleted file mode 100644
index d3e3616..0000000
--- a/b8d4e0595c8134b2b3c7e82ecb8da36c9354f68a.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From b8d4e0595c8134b2b3c7e82ecb8da36c9354f68a Mon Sep 17 00:00:00 2001
-From: Dan Dennedy <dan@dennedy.org>
-Date: Sat, 11 Apr 2020 11:54:37 -0700
-Subject: [PATCH] fix c0rners filter top and left edge artifacts at default
- full size
-
----
- src/filter/c0rners/c0rners.c | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/src/filter/c0rners/c0rners.c b/src/filter/c0rners/c0rners.c
-index e270253..f510926 100644
---- a/src/filter/c0rners/c0rners.c
-+++ b/src/filter/c0rners/c0rners.c
-@@ -974,6 +974,8 @@ void f0r_get_param_value(f0r_instance_t instance, f0r_param_t param, int param_i
- }
- }
-
-+#define EPSILON 1e-5f
-+#define EQUIVALENT_FLOATS(x, y) (fabsf((x) - (y)) < EPSILON)
-
- //-------------------------------------------------
- void f0r_update(f0r_instance_t instance, double time, const uint32_t* inframe, uint32_t* outframe)
-@@ -983,6 +985,22 @@ void f0r_update(f0r_instance_t instance, double time, const uint32_t* inframe, u
-
- p=(inst*)instance;
-
-+ if (EQUIVALENT_FLOATS(p->x1, 0.333333f) &&
-+ EQUIVALENT_FLOATS(p->y1, 0.333333f) &&
-+ EQUIVALENT_FLOATS(p->x2, 0.666666f) &&
-+ EQUIVALENT_FLOATS(p->y2, 0.333333f) &&
-+ EQUIVALENT_FLOATS(p->x3, 0.666666f) &&
-+ EQUIVALENT_FLOATS(p->y3, 0.666666f) &&
-+ EQUIVALENT_FLOATS(p->x4, 0.333333f) &&
-+ EQUIVALENT_FLOATS(p->y4, 0.666666f) &&
-+ (!p->stretchON || (
-+ EQUIVALENT_FLOATS(p->stretchx, 0.5f) &&
-+ EQUIVALENT_FLOATS(p->stretchy, 0.5f))))
-+ {
-+ memcpy(outframe, inframe, p->w * p->h * 4);
-+ return;
-+ }
-+
- if (p->mapIsDirty) {
- tocka2 vog[4];
- int nots[4];
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-11 6:55 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-11 6:55 [rpms/frei0r-plugins] rawhide: Remove unused-patches Nicolas Chauvet
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox