From 447c1b1395c846e45bab537583edecff42e5476c Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Sat, 12 Dec 2015 20:07:32 +0000 Subject: [PATCH] opencv: clean includes The opencv element includes were full of duplicates and uneeded headers. For example a few elements that stopped using gstcvopencvutils still included that header file. --- ext/opencv/gstcvdilate.cpp | 2 - ext/opencv/gstcvdilateerode.cpp | 2 - ext/opencv/gstcvdilateerode.h | 6 +- ext/opencv/gstcvequalizehist.cpp | 3 - ext/opencv/gstcvequalizehist.h | 6 +- ext/opencv/gstcverode.cpp | 2 - ext/opencv/gstcvlaplace.cpp | 3 - ext/opencv/gstcvlaplace.h | 6 +- ext/opencv/gstcvsmooth.cpp | 4 +- ext/opencv/gstcvsmooth.h | 6 +- ext/opencv/gstcvsobel.cpp | 3 - ext/opencv/gstcvsobel.h | 6 +- ext/opencv/gstdisparity.cpp | 52 +++++---- ext/opencv/gstdisparity.h | 1 + ext/opencv/gstedgedetect.cpp | 5 +- ext/opencv/gstedgedetect.h | 3 +- ext/opencv/gstfaceblur.cpp | 4 +- ext/opencv/gstfaceblur.h | 2 +- ext/opencv/gstfacedetect.cpp | 5 +- ext/opencv/gstgrabcut.cpp | 20 ++-- ext/opencv/gsthanddetect.cpp | 1 - ext/opencv/gsthanddetect.h | 4 - ext/opencv/gstmotioncells.cpp | 8 -- ext/opencv/gstmotioncells.h | 3 +- ext/opencv/gstopencvvideofilter.cpp | 2 - ext/opencv/gstpyramidsegment.cpp | 3 - ext/opencv/gstpyramidsegment.h | 3 +- ext/opencv/gstretinex.cpp | 9 +- ext/opencv/gstretinex.h | 5 +- ext/opencv/gstsegmentation.cpp | 162 ++++++++++++++-------------- ext/opencv/gstskindetect.cpp | 11 +- ext/opencv/gstskindetect.h | 4 +- ext/opencv/gsttemplatematch.cpp | 3 - ext/opencv/gsttemplatematch.h | 3 +- ext/opencv/gsttextoverlay.cpp | 3 - ext/opencv/gsttextoverlay.h | 8 +- 36 files changed, 152 insertions(+), 221 deletions(-) diff --git a/ext/opencv/gstcvdilate.cpp b/ext/opencv/gstcvdilate.cpp index 64cecc1240..9c1479d024 100644 --- a/ext/opencv/gstcvdilate.cpp +++ b/ext/opencv/gstcvdilate.cpp @@ -45,8 +45,6 @@ # include #endif -#include - #include "gstcvdilate.h" #include diff --git a/ext/opencv/gstcvdilateerode.cpp b/ext/opencv/gstcvdilateerode.cpp index 763761b350..69a4169e81 100644 --- a/ext/opencv/gstcvdilateerode.cpp +++ b/ext/opencv/gstcvdilateerode.cpp @@ -50,8 +50,6 @@ # include #endif -#include - #include "gstopencvutils.h" #include "gstcvdilateerode.h" diff --git a/ext/opencv/gstcvdilateerode.h b/ext/opencv/gstcvdilateerode.h index 94425f541d..bd2aa7c243 100644 --- a/ext/opencv/gstcvdilateerode.h +++ b/ext/opencv/gstcvdilateerode.h @@ -1,7 +1,7 @@ /* * GStreamer * Copyright (C) 2010 Thiago Santos - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -44,8 +44,6 @@ #ifndef __GST_CV_DILATE_ERODE_H__ #define __GST_CV_DILATE_ERODE_H__ -#include - #include G_BEGIN_DECLS @@ -72,7 +70,7 @@ struct _GstCvDilateErode gint iterations; }; -struct _GstCvDilateErodeClass +struct _GstCvDilateErodeClass { GstOpencvVideoFilterClass parent_class; }; diff --git a/ext/opencv/gstcvequalizehist.cpp b/ext/opencv/gstcvequalizehist.cpp index 0ea723f153..c92497fc28 100644 --- a/ext/opencv/gstcvequalizehist.cpp +++ b/ext/opencv/gstcvequalizehist.cpp @@ -45,9 +45,6 @@ # include #endif -#include - -#include "gstopencvutils.h" #include "gstcvequalizehist.h" #include diff --git a/ext/opencv/gstcvequalizehist.h b/ext/opencv/gstcvequalizehist.h index d1d600d887..c185994b8d 100644 --- a/ext/opencv/gstcvequalizehist.h +++ b/ext/opencv/gstcvequalizehist.h @@ -1,7 +1,7 @@ /* * GStreamer * Copyright (C) 2010 Thiago Santos - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -44,8 +44,6 @@ #ifndef __GST_CV_EQUALIZE_HIST_H__ #define __GST_CV_EQUALIZE_HIST_H__ -#include - #include G_BEGIN_DECLS @@ -70,7 +68,7 @@ struct _GstCvEqualizeHist GstOpencvVideoFilter element; }; -struct _GstCvEqualizeHistClass +struct _GstCvEqualizeHistClass { GstOpencvVideoFilterClass parent_class; }; diff --git a/ext/opencv/gstcverode.cpp b/ext/opencv/gstcverode.cpp index 91f460a86e..75e2a1bb81 100644 --- a/ext/opencv/gstcverode.cpp +++ b/ext/opencv/gstcverode.cpp @@ -45,8 +45,6 @@ # include #endif -#include - #include "gstcverode.h" #include diff --git a/ext/opencv/gstcvlaplace.cpp b/ext/opencv/gstcvlaplace.cpp index b20b0bc08c..56b74b2ec1 100644 --- a/ext/opencv/gstcvlaplace.cpp +++ b/ext/opencv/gstcvlaplace.cpp @@ -45,9 +45,6 @@ # include #endif -#include - -#include "gstopencvutils.h" #include "gstcvlaplace.h" #include diff --git a/ext/opencv/gstcvlaplace.h b/ext/opencv/gstcvlaplace.h index 92bf7bba4d..7ac91720a6 100644 --- a/ext/opencv/gstcvlaplace.h +++ b/ext/opencv/gstcvlaplace.h @@ -1,7 +1,7 @@ /* * GStreamer * Copyright (C) 2010 Thiago Santos - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -44,8 +44,6 @@ #ifndef __GST_CV_LAPLACE_H__ #define __GST_CV_LAPLACE_H__ -#include - #include G_BEGIN_DECLS @@ -76,7 +74,7 @@ struct _GstCvLaplace IplImage *intermediary_img; }; -struct _GstCvLaplaceClass +struct _GstCvLaplaceClass { GstOpencvVideoFilterClass parent_class; }; diff --git a/ext/opencv/gstcvsmooth.cpp b/ext/opencv/gstcvsmooth.cpp index 707f95324a..1bf3b60d20 100644 --- a/ext/opencv/gstcvsmooth.cpp +++ b/ext/opencv/gstcvsmooth.cpp @@ -1,7 +1,7 @@ /* * GStreamer * Copyright (C) 2010 Thiago Santos - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -45,8 +45,6 @@ # include #endif -#include - #include "gstopencvutils.h" #include "gstcvsmooth.h" #include diff --git a/ext/opencv/gstcvsmooth.h b/ext/opencv/gstcvsmooth.h index c3e516484c..7c74fbd57d 100644 --- a/ext/opencv/gstcvsmooth.h +++ b/ext/opencv/gstcvsmooth.h @@ -1,7 +1,7 @@ /* * GStreamer * Copyright (C) 2010 Thiago Santos - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -44,8 +44,6 @@ #ifndef __GST_CV_SMOOTH_H__ #define __GST_CV_SMOOTH_H__ -#include - #include G_BEGIN_DECLS @@ -77,7 +75,7 @@ struct _GstCvSmooth gdouble spatialsigma; }; -struct _GstCvSmoothClass +struct _GstCvSmoothClass { GstOpencvVideoFilterClass parent_class; }; diff --git a/ext/opencv/gstcvsobel.cpp b/ext/opencv/gstcvsobel.cpp index e1edc0f085..2623cdca62 100644 --- a/ext/opencv/gstcvsobel.cpp +++ b/ext/opencv/gstcvsobel.cpp @@ -45,9 +45,6 @@ # include #endif -#include - -#include "gstopencvutils.h" #include "gstcvsobel.h" #include diff --git a/ext/opencv/gstcvsobel.h b/ext/opencv/gstcvsobel.h index c6719a0a44..a7f306ad7d 100644 --- a/ext/opencv/gstcvsobel.h +++ b/ext/opencv/gstcvsobel.h @@ -1,7 +1,7 @@ /* * GStreamer * Copyright (C) 2010 Thiago Santos - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -44,8 +44,6 @@ #ifndef __GST_CV_SOBEL_H__ #define __GST_CV_SOBEL_H__ -#include - #include G_BEGIN_DECLS @@ -74,7 +72,7 @@ struct _GstCvSobel gint aperture_size; }; -struct _GstCvSobelClass +struct _GstCvSobelClass { GstOpencvVideoFilterClass parent_class; }; diff --git a/ext/opencv/gstdisparity.cpp b/ext/opencv/gstdisparity.cpp index f3f9d64db2..28f06a745f 100644 --- a/ext/opencv/gstdisparity.cpp +++ b/ext/opencv/gstdisparity.cpp @@ -53,32 +53,32 @@ * run prefiltering stages to normalize brightness between the inputs, and to maximize texture. * * Note that in general is hard to find correspondences between soft textures, for instance a - * block of gloss blue colour. The output is a gray image with values close to white meaning + * block of gloss blue colour. The output is a gray image with values close to white meaning * closer to the cameras and darker far away. Black means that the pixels were not matched * correctly (not found). The resulting depth map can be transformed into real world coordinates * by means of OpenCV function (reprojectImageTo3D) but for this the camera matrixes need to * be fully known. * * Algorithm 1 is the OpenCV Stereo Block Matching, similar to the one developed by Kurt Konolige - * [A] and that works by using small Sum-of-absolute-differenc (SAD) windows to find matching + * [A] and that works by using small Sum-of-absolute-differenc (SAD) windows to find matching * points between the left and right rectified images. This algorithm finds only strongly matching * points between both images, this means normally strong textures. In soft textures, such as a * single coloured wall (as opposed to, f.i. a hairy rug), not all pixels might have correspondence. * * Algorithm 2 is the Semi Global Matching (SGM) algorithm [B] which models the scene structure - * with a point-wise matching cost and an associated smoothness term. The energy minimization - * is then computed in a multitude of 1D lines. For each point, the disparity corresponding to - * the minimum aggregated cost is selected. In [B] the author proposes to use 8 or 16 different - * independent paths. The SGM approach works well near depth discontinuities, but produces less - * accurate results. Despite its relatively large memory footprint, this method is very fast and + * with a point-wise matching cost and an associated smoothness term. The energy minimization + * is then computed in a multitude of 1D lines. For each point, the disparity corresponding to + * the minimum aggregated cost is selected. In [B] the author proposes to use 8 or 16 different + * independent paths. The SGM approach works well near depth discontinuities, but produces less + * accurate results. Despite its relatively large memory footprint, this method is very fast and * potentially robust to complicated textured regions. * - * Algorithm 3 is the OpenCV implementation of a modification of the variational stereo + * Algorithm 3 is the OpenCV implementation of a modification of the variational stereo * correspondence algorithm, described in [C]. * - * Algorithm 4 is the Graph Cut stereo vision algorithm (GC) introduced in [D]; it is a global + * Algorithm 4 is the Graph Cut stereo vision algorithm (GC) introduced in [D]; it is a global * stereo vision method. It calculates depth discontinuities by minimizing an energy function - * combingin a point-wise matching cost and a smoothness term. The energy function is passed + * combingin a point-wise matching cost and a smoothness term. The energy function is passed * to graph and Graph Cut is used to find a lowest-energy cut. GC is computationally intensive due * to its global nature and uses loads of memory, but it can deal with textureless regions and * reflections better than other methods. @@ -86,15 +86,15 @@ * * Some test images can be found here: http://vision.stanford.edu/~birch/p2p/ * - * [A] K. Konolige. Small vision system. hardware and implementation. In Proc. International + * [A] K. Konolige. Small vision system. hardware and implementation. In Proc. International * Symposium on Robotics Research, pages 111--116, Hayama, Japan, 1997. - * [B] H. Hirschmüller, “Accurate and efficient stereo processing by semi-global matching and - * mutual information,” in Proceedings of the IEEE Conference on Computer Vision and Pattern + * [B] H. Hirschmüller, “Accurate and efficient stereo processing by semi-global matching and + * mutual information,” in Proceedings of the IEEE Conference on Computer Vision and Pattern * Recognition, 2005, pp. 807–814. * [C] S. Kosov, T. Thormaehlen, H.-P. Seidel "Accurate Real-Time Disparity Estimation with - * Variational Methods" Proceedings of the 5th International Symposium on Visual Computing, + * Variational Methods" Proceedings of the 5th International Symposium on Visual Computing, * Vegas, USA - * [D] Scharstein, D. & Szeliski, R. (2001). A taxonomy and evaluation of dense two-frame stereo + * [D] Scharstein, D. & Szeliski, R. (2001). A taxonomy and evaluation of dense two-frame stereo * correspondence algorithms, International Journal of Computer Vision 47: 7–42. * * @@ -103,7 +103,7 @@ * gst-launch-1.0 videotestsrc ! video/x-raw,width=320,height=240 ! disp0.sink_right videotestsrc ! video/x-raw,width=320,height=240 ! disp0.sink_left disparity name=disp0 ! videoconvert ! ximagesink * ]| * Another example, with two png files representing a classical stereo matching, - * downloadable from http://vision.middlebury.edu/stereo/submit/tsukuba/im4.png and + * downloadable from http://vision.middlebury.edu/stereo/submit/tsukuba/im4.png and * im3.png. Note here they are downloaded in ~ (home). * |[ gst-launch-1.0 multifilesrc location=~/im3.png ! pngdec ! videoconvert ! disp0.sink_right multifilesrc location=~/im4.png ! pngdec ! videoconvert ! disp0.sink_left disparity name=disp0 method=sbm disp0.src ! videoconvert ! ximagesink @@ -119,8 +119,6 @@ gst-launch-1.0 multifilesrc location=~/im3.png ! pngdec ! videoconvert ! di #include #endif -#include -#include #include #include "gstdisparity.h" @@ -548,19 +546,19 @@ gst_disparity_chain_right (GstPad * pad, GstObject * parent, GstBuffer * buffer) fs->width, fs->height, fs->actualChannels); /* Stereo corresponding using semi-global block matching. According to OpenCV: - "" The class implements modified H. Hirschmuller algorithm HH08 . The main + "" The class implements modified H. Hirschmuller algorithm HH08 . The main differences between the implemented algorithm and the original one are: - - by default the algorithm is single-pass, i.e. instead of 8 directions we + - by default the algorithm is single-pass, i.e. instead of 8 directions we only consider 5. Set fullDP=true to run the full variant of the algorithm (which could consume a lot of memory) - the algorithm matches blocks, not individual pixels (though, by setting SADWindowSize=1 the blocks are reduced to single pixels) - mutual information cost function is not implemented. Instead, we use a - simpler Birchfield-Tomasi sub-pixel metric from BT96 , though the color + simpler Birchfield-Tomasi sub-pixel metric from BT96 , though the color images are supported as well. - - we include some pre- and post- processing steps from K. Konolige - algorithm FindStereoCorrespondenceBM , such as pre-filtering + - we include some pre- and post- processing steps from K. Konolige + algorithm FindStereoCorrespondenceBM , such as pre-filtering ( CV_STEREO_BM_XSOBEL type) and post-filtering (uniqueness check, quadratic interpolation and speckle filtering) "" */ @@ -572,7 +570,7 @@ gst_disparity_chain_right (GstPad * pad, GstObject * parent, GstBuffer * buffer) CV_MINMAX, NULL); cvCvtColor (fs->cvGray_depth_map2, fs->cvRGB_right, CV_GRAY2RGB); } - /* Algorithm 1 is the OpenCV Stereo Block Matching, similar to the one + /* Algorithm 1 is the OpenCV Stereo Block Matching, similar to the one developed by Kurt Konolige [A] and that works by using small Sum-of-absolute- differences (SAD) window. See the comments on top of the file. */ @@ -593,9 +591,9 @@ gst_disparity_chain_right (GstPad * pad, GstObject * parent, GstBuffer * buffer) run_svar_iteration (fs); cvCvtColor (fs->cvGray_depth_map2, fs->cvRGB_right, CV_GRAY2RGB); } - /* The Graph Cut stereo vision algorithm (GC) introduced in [D] is a global - stereo vision method. It calculates depth discontinuities by minimizing an - energy function combingin a point-wise matching cost and a smoothness term. + /* The Graph Cut stereo vision algorithm (GC) introduced in [D] is a global + stereo vision method. It calculates depth discontinuities by minimizing an + energy function combingin a point-wise matching cost and a smoothness term. See the comments on top of the file. */ else if (METHOD_GC == fs->method) { diff --git a/ext/opencv/gstdisparity.h b/ext/opencv/gstdisparity.h index adbb9ae79b..07e241771f 100644 --- a/ext/opencv/gstdisparity.h +++ b/ext/opencv/gstdisparity.h @@ -45,6 +45,7 @@ #define __GST_DISPARITY_H__ #include +#include #include diff --git a/ext/opencv/gstedgedetect.cpp b/ext/opencv/gstedgedetect.cpp index c27e4e902b..1c0777bedd 100644 --- a/ext/opencv/gstedgedetect.cpp +++ b/ext/opencv/gstedgedetect.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2005 Thomas Vander Stichele * Copyright (C) 2005 Ronald S. Bultje * Copyright (C) 2008 Michael Sheldon - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -60,9 +60,6 @@ # include #endif -#include - -#include "gstopencvutils.h" #include "gstedgedetect.h" #include diff --git a/ext/opencv/gstedgedetect.h b/ext/opencv/gstedgedetect.h index 23c95e69b5..fe070c2c2a 100644 --- a/ext/opencv/gstedgedetect.h +++ b/ext/opencv/gstedgedetect.h @@ -3,7 +3,7 @@ * Copyright (C) 2005 Thomas Vander Stichele * Copyright (C) 2005 Ronald S. Bultje * Copyright (C) 2008 Michael Sheldon - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -47,6 +47,7 @@ #define __GST_EDGE_DETECT_H__ #include +#include #include G_BEGIN_DECLS diff --git a/ext/opencv/gstfaceblur.cpp b/ext/opencv/gstfaceblur.cpp index 40ff4f8b0d..2bc88d12d3 100644 --- a/ext/opencv/gstfaceblur.cpp +++ b/ext/opencv/gstfaceblur.cpp @@ -4,7 +4,7 @@ * Copyright (C) 2005 Ronald S. Bultje * Copyright (C) 2008 Michael Sheldon * Copyright (C) 2011 Robert Jobbagy - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -61,10 +61,8 @@ # include #endif -#include #include -#include "gstopencvutils.h" #include "gstfaceblur.h" #include #include diff --git a/ext/opencv/gstfaceblur.h b/ext/opencv/gstfaceblur.h index 890c0c945d..9c86e1bdb1 100644 --- a/ext/opencv/gstfaceblur.h +++ b/ext/opencv/gstfaceblur.h @@ -4,7 +4,7 @@ * Copyright (C) 2005 Ronald S. Bultje * Copyright (C) 2008 Michael Sheldon * Copyright (C) 2011 Robert Jobbagy - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation diff --git a/ext/opencv/gstfacedetect.cpp b/ext/opencv/gstfacedetect.cpp index 7ec6e39139..aff9979e0c 100644 --- a/ext/opencv/gstfacedetect.cpp +++ b/ext/opencv/gstfacedetect.cpp @@ -76,11 +76,8 @@ # include #endif -#include -#include #include -#include "gstopencvutils.h" #include "gstfacedetect.h" #include @@ -573,7 +570,7 @@ gst_face_detect_run_detector (GstFaceDetect * filter, } } -/* +/* * Performs the face detection */ static GstFlowReturn diff --git a/ext/opencv/gstgrabcut.cpp b/ext/opencv/gstgrabcut.cpp index c9ff4f9612..eaf727be7c 100644 --- a/ext/opencv/gstgrabcut.cpp +++ b/ext/opencv/gstgrabcut.cpp @@ -1,7 +1,7 @@ /* * GStreamer * Copyright (C) 2013 Miguel Casas-Sanchez - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -48,23 +48,23 @@ * This element is a wrapper around OpenCV grabcut implementation. GrabCut is an * image segmentation method based on graph cuts technique. It can be seen as a * way of fine-grain segmenting the image from some FG and BG "seed" areas. The - * OpenCV implementation follows the article [1]. + * OpenCV implementation follows the article [1]. * The "seed" areas are taken in this element from either an input bounding box * coming from a face detection, or from alpha channel values. The input box is - * taken from a "face" event such as the one generated from the 'facedetect' - * element. The Alpha channel values should be one of the following (cv.hpp): - * enum{ + * taken from a "face" event such as the one generated from the 'facedetect' + * element. The Alpha channel values should be one of the following (cv.hpp): + * enum{ * GC_BGD = 0, //!< background * GC_FGD = 1, //!< foreground * GC_PR_BGD = 2, //!< most probably background * GC_PR_FGD = 3 //!< most probably foreground * }; * with values over GC_PR_FGD interpreted as GC_PR_FGD. IN CASE OF no alpha mask - * input (all 0's or all 1's), the 'GstOpenCvFaceDetect-face' downstream event + * input (all 0's or all 1's), the 'GstOpenCvFaceDetect-face' downstream event * is used to create a bbox of PR_FG elements. If both foreground alpha * is not specified and there is no face detection, nothing is done. * - * [1] C. Rother, V. Kolmogorov, and A. Blake, "GrabCut: Interactive foreground + * [1] C. Rother, V. Kolmogorov, and A. Blake, "GrabCut: Interactive foreground * extraction using iterated graph cuts, ACM Trans. Graph., vol. 23, pp. 309–314, * 2004. * @@ -84,11 +84,9 @@ #include #endif -#include #include "gstgrabcut.h" extern "C" { -#include #include } #include @@ -326,8 +324,8 @@ gst_grabcut_transform_ip (GstVideoFilter * btrans, GstVideoFrame * frame) cvCvtColor (gc->cvRGBAin, gc->cvRGBin, CV_BGRA2BGR); compose_matrix_from_image (gc->grabcut_mask, gc->cvD); - /* Pass cvD to grabcut_mask for the graphcut stuff but that only if - really there is something in the mask! otherwise -->input bbox is + /* Pass cvD to grabcut_mask for the graphcut stuff but that only if + really there is something in the mask! otherwise -->input bbox is what we use */ alphapixels = cvCountNonZero (gc->cvD); if ((0 < alphapixels) && (alphapixels < (gc->width * gc->height))) { diff --git a/ext/opencv/gsthanddetect.cpp b/ext/opencv/gsthanddetect.cpp index c8ced3c4bf..e36b80e15f 100644 --- a/ext/opencv/gsthanddetect.cpp +++ b/ext/opencv/gsthanddetect.cpp @@ -62,7 +62,6 @@ /* element header */ #include "gsthanddetect.h" -#include "gstopencvutils.h" #include GST_DEBUG_CATEGORY_STATIC (gst_handdetect_debug); diff --git a/ext/opencv/gsthanddetect.h b/ext/opencv/gsthanddetect.h index 80d2a69cdc..39308c81ec 100644 --- a/ext/opencv/gsthanddetect.h +++ b/ext/opencv/gsthanddetect.h @@ -45,10 +45,6 @@ #ifndef __GST_HANDDETECT_H__ #define __GST_HANDDETECT_H__ -#include -#include -#include - #include #include "gstopencvvideofilter.h" diff --git a/ext/opencv/gstmotioncells.cpp b/ext/opencv/gstmotioncells.cpp index 77a806ce2e..841b55a880 100644 --- a/ext/opencv/gstmotioncells.cpp +++ b/ext/opencv/gstmotioncells.cpp @@ -59,15 +59,7 @@ # include #endif -#include -#include -#include -#include -#include - -#include #include "gstmotioncells.h" -#include GST_DEBUG_CATEGORY_STATIC (gst_motion_cells_debug); #define GST_CAT_DEFAULT gst_motion_cells_debug diff --git a/ext/opencv/gstmotioncells.h b/ext/opencv/gstmotioncells.h index 1d5505c420..3179caefdb 100644 --- a/ext/opencv/gstmotioncells.h +++ b/ext/opencv/gstmotioncells.h @@ -2,7 +2,7 @@ * GStreamer * Copyright (C) 2011 Robert Jobbagy * Copyright (C) 2011 Nicola Murino - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -46,6 +46,7 @@ #define __GST_MOTIONCELLS_H__ #include +#include #include #include "motioncells_wrapper.h" diff --git a/ext/opencv/gstopencvvideofilter.cpp b/ext/opencv/gstopencvvideofilter.cpp index 5197b49b60..4b8e536702 100644 --- a/ext/opencv/gstopencvvideofilter.cpp +++ b/ext/opencv/gstopencvvideofilter.cpp @@ -47,8 +47,6 @@ # include #endif -#include - #include "gstopencvvideofilter.h" #include "gstopencvutils.h" diff --git a/ext/opencv/gstpyramidsegment.cpp b/ext/opencv/gstpyramidsegment.cpp index a8760ca598..4dbf8c3b4c 100644 --- a/ext/opencv/gstpyramidsegment.cpp +++ b/ext/opencv/gstpyramidsegment.cpp @@ -60,9 +60,6 @@ # include #endif -#include - -#include "gstopencvutils.h" #include "gstpyramidsegment.h" #define BLOCK_SIZE 1000 diff --git a/ext/opencv/gstpyramidsegment.h b/ext/opencv/gstpyramidsegment.h index 586ef2cdef..bc012ac55f 100644 --- a/ext/opencv/gstpyramidsegment.h +++ b/ext/opencv/gstpyramidsegment.h @@ -3,7 +3,7 @@ * Copyright (C) 2005 Thomas Vander Stichele * Copyright (C) 2005 Ronald S. Bultje * Copyright (C) 2008 Michael Sheldon - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -47,6 +47,7 @@ #define __GST_PYRAMID_SEGMENT_H__ #include +#include #include #if CV_MAJOR_VERSION * 100 + CV_MINOR_VERSION >= 204 diff --git a/ext/opencv/gstretinex.cpp b/ext/opencv/gstretinex.cpp index 4a1ea4df27..75842f8c6f 100644 --- a/ext/opencv/gstretinex.cpp +++ b/ext/opencv/gstretinex.cpp @@ -1,7 +1,7 @@ /* * GStreamer * Copyright (C) 2013 Miguel Casas-Sanchez - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -46,8 +46,8 @@ * * Basic and multiscale retinex for colour image enhancement, see article: * - * Rahman, Zia-ur, Daniel J. Jobson, and Glenn A. Woodell. "Multi-scale retinex for - * color image enhancement." Image Processing, 1996. Proceedings., International + * Rahman, Zia-ur, Daniel J. Jobson, and Glenn A. Woodell. "Multi-scale retinex for + * color image enhancement." Image Processing, 1996. Proceedings., International * Conference on. Vol. 3. IEEE, 1996. * * @@ -62,7 +62,6 @@ #include #endif -#include #include "gstretinex.h" #include #include @@ -304,7 +303,7 @@ gst_retinex_transform_ip (GstBaseTransform * btrans, GstBuffer * buf) /* Basic retinex restoration. The image and a filtered image are converted to the log domain and subtracted. - O = Log(I) - Log(H(I)) + O = Log(I) - Log(H(I)) where O is the output, H is a gaussian 2d filter and I is the input image. */ if (METHOD_BASIC == retinex->method) { /* Compute log image */ diff --git a/ext/opencv/gstretinex.h b/ext/opencv/gstretinex.h index 8cebde9071..d090a5b8fd 100644 --- a/ext/opencv/gstretinex.h +++ b/ext/opencv/gstretinex.h @@ -1,7 +1,7 @@ /* * GStreamer * Copyright (C) 2013 Miguel Casas-Sanchez - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -44,9 +44,6 @@ #ifndef __GST_RETINEX_H__ #define __GST_RETINEX_H__ -#include -#include -#include #include #include diff --git a/ext/opencv/gstsegmentation.cpp b/ext/opencv/gstsegmentation.cpp index 79cbb49caf..e0aa821f72 100644 --- a/ext/opencv/gstsegmentation.cpp +++ b/ext/opencv/gstsegmentation.cpp @@ -1,15 +1,15 @@ /* * GStreamer * Copyright (C) 2013 Miguel Casas-Sanchez - * Except: Parts of code inside the preprocessor define CODE_FROM_OREILLY_BOOK, - * which are downloaded from O'Reilly website + * Except: Parts of code inside the preprocessor define CODE_FROM_OREILLY_BOOK, + * which are downloaded from O'Reilly website * [http://examples.oreilly.com/9780596516130/] * and adapted. Its license reads: * "Oct. 3, 2008 - * Right to use this code in any way you want without warrenty, support or + * Right to use this code in any way you want without warrenty, support or * any guarentee of it working. " * - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -55,27 +55,27 @@ * * This element creates and updates a fg/bg model using one of several approaches. * The one called "codebook" refers to the codebook approach following the opencv - * O'Reilly book [1] implementation of the algorithm described in K. Kim, - * T. H. Chalidabhongse, D. Harwood and L. Davis [2]. BackgroundSubtractorMOG [3], - * or MOG for shorts, refers to a Gaussian Mixture-based Background/Foreground + * O'Reilly book [1] implementation of the algorithm described in K. Kim, + * T. H. Chalidabhongse, D. Harwood and L. Davis [2]. BackgroundSubtractorMOG [3], + * or MOG for shorts, refers to a Gaussian Mixture-based Background/Foreground * Segmentation Algorithm. OpenCV MOG implements the algorithm described in [4]. - * BackgroundSubtractorMOG2 [5], refers to another Gaussian Mixture-based - * Background/Foreground segmentation algorithm. OpenCV MOG2 implements the + * BackgroundSubtractorMOG2 [5], refers to another Gaussian Mixture-based + * Background/Foreground segmentation algorithm. OpenCV MOG2 implements the * algorithm described in [6] and [7]. * - * [1] Learning OpenCV: Computer Vision with the OpenCV Library by Gary Bradski + * [1] Learning OpenCV: Computer Vision with the OpenCV Library by Gary Bradski * and Adrian Kaehler, Published by O'Reilly Media, October 3, 2008 - * [2] "Real-time Foreground-Background Segmentation using Codebook Model", + * [2] "Real-time Foreground-Background Segmentation using Codebook Model", * Real-time Imaging, Volume 11, Issue 3, Pages 167-256, June 2005. * [3] http://opencv.itseez.com/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog - * [4] P. KadewTraKuPong and R. Bowden, "An improved adaptive background - * mixture model for real-time tracking with shadow detection", Proc. 2nd + * [4] P. KadewTraKuPong and R. Bowden, "An improved adaptive background + * mixture model for real-time tracking with shadow detection", Proc. 2nd * European Workshop on Advanced Video-Based Surveillance Systems, 2001 * [5] http://opencv.itseez.com/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog2 - * [6] Z.Zivkovic, "Improved adaptive Gausian mixture model for background + * [6] Z.Zivkovic, "Improved adaptive Gausian mixture model for background * subtraction", International Conference Pattern Recognition, UK, August, 2004. - * [7] Z.Zivkovic, F. van der Heijden, "Efficient Adaptive Density Estimation - * per Image Pixel for the Task of Background Subtraction", Pattern Recognition + * [7] Z.Zivkovic, F. van der Heijden, "Efficient Adaptive Density Estimation + * per Image Pixel for the Task of Background Subtraction", Pattern Recognition * Letters, vol. 27, no. 7, pages 773-780, 2006. * * @@ -90,8 +90,6 @@ #include #endif -#include - #include "gstsegmentation.h" #include #include @@ -382,12 +380,12 @@ gst_segmentation_transform_ip (GstVideoFilter * btrans, GstVideoFrame * frame) cvCvtColor (filter->cvRGBA, filter->cvRGB, CV_RGBA2RGB); cvCvtColor (filter->cvRGB, filter->cvYUV, CV_RGB2YCrCb); - /* Create and update a fg/bg model using a codebook approach following the + /* Create and update a fg/bg model using a codebook approach following the * opencv O'Reilly book [1] implementation of the algo described in [2]. * - * [1] Learning OpenCV: Computer Vision with the OpenCV Library by Gary + * [1] Learning OpenCV: Computer Vision with the OpenCV Library by Gary * Bradski and Adrian Kaehler, Published by O'Reilly Media, October 3, 2008 - * [2] "Real-time Foreground-Background Segmentation using Codebook Model", + * [2] "Real-time Foreground-Background Segmentation using Codebook Model", * Real-time Imaging, Volume 11, Issue 3, Pages 167-256, June 2005. */ if (METHOD_BOOK == filter->method) { unsigned cbBounds[3] = { 10, 5, 5 }; @@ -429,27 +427,27 @@ gst_segmentation_transform_ip (GstVideoFilter * btrans, GstVideoFrame * frame) filter->mem_storage, filter->contours); } - /* Create the foreground and background masks using BackgroundSubtractorMOG [1], - * Gaussian Mixture-based Background/Foreground segmentation algorithm. OpenCV + /* Create the foreground and background masks using BackgroundSubtractorMOG [1], + * Gaussian Mixture-based Background/Foreground segmentation algorithm. OpenCV * MOG implements the algorithm described in [2]. - * + * * [1] http://opencv.itseez.com/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog - * [2] P. KadewTraKuPong and R. Bowden, "An improved adaptive background - * mixture model for real-time tracking with shadow detection", Proc. 2nd + * [2] P. KadewTraKuPong and R. Bowden, "An improved adaptive background + * mixture model for real-time tracking with shadow detection", Proc. 2nd * European Workshop on Advanced Video-Based Surveillance Systems, 2001 */ else if (METHOD_MOG == filter->method) { run_mog_iteration (filter); } /* Create the foreground and background masks using BackgroundSubtractorMOG2 - * [1], Gaussian Mixture-based Background/Foreground segmentation algorithm. + * [1], Gaussian Mixture-based Background/Foreground segmentation algorithm. * OpenCV MOG2 implements the algorithm described in [2] and [3]. - * + * * [1] http://opencv.itseez.com/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog2 - * [2] Z.Zivkovic, "Improved adaptive Gausian mixture model for background + * [2] Z.Zivkovic, "Improved adaptive Gausian mixture model for background * subtraction", International Conference Pattern Recognition, UK, Aug 2004. - * [3] Z.Zivkovic, F. van der Heijden, "Efficient Adaptive Density Estimation - * per Image Pixel for the Task of Background Subtraction", Pattern + * [3] Z.Zivkovic, F. van der Heijden, "Efficient Adaptive Density Estimation + * per Image Pixel for the Task of Background Subtraction", Pattern * Recognition Letters, vol. 27, no. 7, pages 773-780, 2006. */ else if (METHOD_MOG2 == filter->method) { run_mog2_iteration (filter); @@ -487,20 +485,20 @@ gst_segmentation_plugin_init (GstPlugin * plugin) #ifdef CODE_FROM_OREILLY_BOOK /* See license at the beginning of the page */ -/* - int update_codebook(uchar *p, codeBook &c, unsigned cbBounds) - Updates the codebook entry with a new data point - - p Pointer to a YUV or HSI pixel - c Codebook for this pixel - cbBounds Learning bounds for codebook (Rule of thumb: 10) - numChannels Number of color channels we¡¯re learning - - NOTES: - cvBounds must be of length equal to numChannels - - RETURN - codebook index +/* + int update_codebook(uchar *p, codeBook &c, unsigned cbBounds) + Updates the codebook entry with a new data point + + p Pointer to a YUV or HSI pixel + c Codebook for this pixel + cbBounds Learning bounds for codebook (Rule of thumb: 10) + numChannels Number of color channels we¡¯re learning + + NOTES: + cvBounds must be of length equal to numChannels + + RETURN + codebook index */ int update_codebook (unsigned char *p, codeBook * c, unsigned *cbBounds, @@ -589,14 +587,14 @@ update_codebook (unsigned char *p, codeBook * c, unsigned *cbBounds, /* - int clear_stale_entries(codeBook &c) - During learning, after you've learned for some period of time, - periodically call this to clear out stale codebook entries - - c Codebook to clean up - - Return - number of entries cleared + int clear_stale_entries(codeBook &c) + During learning, after you've learned for some period of time, + periodically call this to clear out stale codebook entries + + c Codebook to clean up + + Return + number of entries cleared */ int clear_stale_entries (codeBook * c) @@ -640,27 +638,27 @@ clear_stale_entries (codeBook * c) /* - uchar background_diff( uchar *p, codeBook &c, - int minMod, int maxMod) - Given a pixel and a codebook, determine if the pixel is - covered by the codebook - - p Pixel pointer (YUV interleaved) - c Codebook reference - numChannels Number of channels we are testing - maxMod Add this (possibly negative) number onto - - max level when determining if new pixel is foreground - minMod Subract this (possibly negative) number from - min level when determining if new pixel is foreground - - NOTES: - minMod and maxMod must have length numChannels, - e.g. 3 channels => minMod[3], maxMod[3]. There is one min and - one max threshold per channel. - - Return - 0 => background, 255 => foreground + uchar background_diff( uchar *p, codeBook &c, + int minMod, int maxMod) + Given a pixel and a codebook, determine if the pixel is + covered by the codebook + + p Pixel pointer (YUV interleaved) + c Codebook reference + numChannels Number of channels we are testing + maxMod Add this (possibly negative) number onto + + max level when determining if new pixel is foreground + minMod Subract this (possibly negative) number from + min level when determining if new pixel is foreground + + NOTES: + minMod and maxMod must have length numChannels, + e.g. 3 channels => minMod[3], maxMod[3]. There is one min and + one max threshold per channel. + + Return + 0 => background, 255 => foreground */ unsigned char background_diff (unsigned char *p, codeBook * c, int numChannels, @@ -799,12 +797,12 @@ run_mog_iteration (GstSegmentation * filter) (uchar *) filter->cvFG->imageData; /* - BackgroundSubtractorMOG [1], Gaussian Mixture-based Background/Foreground + BackgroundSubtractorMOG [1], Gaussian Mixture-based Background/Foreground Segmentation Algorithm. OpenCV MOG implements the algorithm described in [2]. [1] http://opencv.itseez.com/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog - [2] P. KadewTraKuPong and R. Bowden, "An improved adaptive background - mixture model for real-time tracking with shadow detection", Proc. 2nd + [2] P. KadewTraKuPong and R. Bowden, "An improved adaptive background + mixture model for real-time tracking with shadow detection", Proc. 2nd European Workshop on Advanced Video-Based Surveillance Systems, 2001 */ @@ -824,15 +822,15 @@ run_mog2_iteration (GstSegmentation * filter) (uchar *) filter->cvFG->imageData; /* - BackgroundSubtractorMOG2 [1], Gaussian Mixture-based Background/Foreground - segmentation algorithm. OpenCV MOG2 implements the algorithm described in + BackgroundSubtractorMOG2 [1], Gaussian Mixture-based Background/Foreground + segmentation algorithm. OpenCV MOG2 implements the algorithm described in [2] and [3]. [1] http://opencv.itseez.com/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog2 - [2] Z.Zivkovic, "Improved adaptive Gausian mixture model for background + [2] Z.Zivkovic, "Improved adaptive Gausian mixture model for background subtraction", International Conference Pattern Recognition, UK, August, 2004. - [3] Z.Zivkovic, F. van der Heijden, "Efficient Adaptive Density Estimation per - Image Pixel for the Task of Background Subtraction", Pattern Recognition + [3] Z.Zivkovic, F. van der Heijden, "Efficient Adaptive Density Estimation per + Image Pixel for the Task of Background Subtraction", Pattern Recognition Letters, vol. 27, no. 7, pages 773-780, 2006. */ diff --git a/ext/opencv/gstskindetect.cpp b/ext/opencv/gstskindetect.cpp index 36d9480e2a..8ecb044fff 100644 --- a/ext/opencv/gstskindetect.cpp +++ b/ext/opencv/gstskindetect.cpp @@ -1,7 +1,7 @@ /* * GStreamer * Copyright (C) 2013 Miguel Casas-Sanchez - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -58,9 +58,6 @@ #include #endif -#include - -#include "gstopencvutils.h" #include "gstskindetect.h" #include #include @@ -327,7 +324,7 @@ gst_skin_detect_transform (GstOpencvVideoFilter * base, GstBuffer * buf, cvCvtColor (filter->cvRGB, filter->cvHSV, CV_RGB2HSV); cvCvtPixToPlane (filter->cvHSV, filter->cvH, filter->cvS, filter->cvV, 0); /* Extract the 3 color components. */ - /* Detect which pixels in each of the H, S and V channels are probably skin pixels. + /* Detect which pixels in each of the H, S and V channels are probably skin pixels. Assume that skin has a Hue between 0 to 18 (out of 180), and Saturation above 50, and Brightness above 80. */ cvThreshold (filter->cvH, filter->cvH2, 10, UCHAR_MAX, CV_THRESH_BINARY); /* (hue > 10) */ cvThreshold (filter->cvH, filter->cvH, 20, UCHAR_MAX, CV_THRESH_BINARY_INV); /* (hue < 20) */ @@ -337,7 +334,7 @@ gst_skin_detect_transform (GstOpencvVideoFilter * base, GstBuffer * buf, /* erode the HUE to get rid of noise. */ cvErode (filter->cvH, filter->cvH, NULL, 1); - /* Combine all 3 thresholded color components, so that an output pixel will only + /* Combine all 3 thresholded color components, so that an output pixel will only be white (255) if the H, S and V pixels were also white. imageSkin = (hue > 10) ^ (hue < 20) ^ (sat > 48) ^ (val > 80), where ^ mean pixels-wise AND */ cvAnd (filter->cvH, filter->cvS, filter->cvSkinPixels1, NULL); @@ -375,7 +372,7 @@ gst_skin_detect_transform (GstOpencvVideoFilter * base, GstBuffer * buf, cvCvtColor (filter->cvdraft, filter->cvRGB, CV_GRAY2RGB); } - /* After this we have a RGB Black and white image with the skin, in + /* After this we have a RGB Black and white image with the skin, in filter->cvRGB. We can postprocess by applying 1 erode-dilate and 1 dilate-erode, or alternatively 1 opening-closing all together, with the goal of removing small (spurious) skin spots and creating large diff --git a/ext/opencv/gstskindetect.h b/ext/opencv/gstskindetect.h index 910d22ed44..a9c548d05a 100644 --- a/ext/opencv/gstskindetect.h +++ b/ext/opencv/gstskindetect.h @@ -3,7 +3,7 @@ * Copyright (C) 2005 Thomas Vander Stichele * Copyright (C) 2005 Ronald S. Bultje * Copyright (C) 2008 Michael Sheldon - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -46,8 +46,6 @@ #ifndef __GST_SKIN_DETECT_H__ #define __GST_SKIN_DETECT_H__ -#include - #include G_BEGIN_DECLS diff --git a/ext/opencv/gsttemplatematch.cpp b/ext/opencv/gsttemplatematch.cpp index 3e77238bde..02ebc573dd 100644 --- a/ext/opencv/gsttemplatematch.cpp +++ b/ext/opencv/gsttemplatematch.cpp @@ -61,10 +61,7 @@ # include #endif -#include - #include "../../gst-libs/gst/gst-i18n-plugin.h" -#include "gstopencvutils.h" #include "gsttemplatematch.h" #include diff --git a/ext/opencv/gsttemplatematch.h b/ext/opencv/gsttemplatematch.h index b6c0426c97..b8d7aa198f 100644 --- a/ext/opencv/gsttemplatematch.h +++ b/ext/opencv/gsttemplatematch.h @@ -3,7 +3,7 @@ * Copyright (C) 2005 Thomas Vander Stichele * Copyright (C) 2005 Ronald S. Bultje * Copyright (C) 2008 Michael Sheldon - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -47,6 +47,7 @@ #define __GST_TEMPLATE_MATCH_H__ #include +#include #ifdef HAVE_HIGHGUI_H #include // includes highGUI definitions diff --git a/ext/opencv/gsttextoverlay.cpp b/ext/opencv/gsttextoverlay.cpp index 3e96cd606a..9fc745fbe0 100644 --- a/ext/opencv/gsttextoverlay.cpp +++ b/ext/opencv/gsttextoverlay.cpp @@ -60,9 +60,6 @@ # include #endif -#include - -#include "gstopencvutils.h" #include "gsttextoverlay.h" GST_DEBUG_CATEGORY_STATIC (gst_opencv_text_overlay_debug); diff --git a/ext/opencv/gsttextoverlay.h b/ext/opencv/gsttextoverlay.h index e92ab0716c..cdcd95604a 100644 --- a/ext/opencv/gsttextoverlay.h +++ b/ext/opencv/gsttextoverlay.h @@ -3,7 +3,7 @@ * Copyright (C) 2005 Thomas Vander Stichele * Copyright (C) 2005 Ronald S. Bultje * Copyright (C) 2010 Sreerenj Balachandran - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation @@ -47,7 +47,7 @@ #define __GST_OPENCV_TEXT_OVERLAY_H__ #include -#include "gstopencvutils.h" +#include #include G_BEGIN_DECLS @@ -73,7 +73,7 @@ struct _GstOpencvTextOverlay GstPad *sinkpad, *srcpad; IplImage *cvImage; - CvFont font; + CvFont font; gint xpos; gint ypos; @@ -85,7 +85,7 @@ struct _GstOpencvTextOverlay }; -struct _GstOpencvTextOverlayClass +struct _GstOpencvTextOverlayClass { GstElementClass parent_class; }; -- 2.34.1