summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Sabatini <stefano.sabatini-lala@poste.it>2010-12-26 11:27:09 +0000
committerStefano Sabatini <stefano.sabatini-lala@poste.it>2010-12-26 11:27:09 +0000
commit17fc94933b050c7b0917ee5a347b14d7b6f87580 (patch)
treefee63df759e9bce7af7707d36748f4ce227b19cc
parent91cbb6ba53147a058e5cc91f5e466f18529abd9d (diff)
Add erode libopencv filter.
Originally committed as revision 26097 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--doc/filters.texi10
-rw-r--r--libavfilter/avfilter.h2
-rw-r--r--libavfilter/vf_libopencv.c8
3 files changed, 19 insertions, 1 deletions
diff --git a/doc/filters.texi b/doc/filters.texi
index 1de7e3d71d..ef1ce62aa9 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -532,6 +532,7 @@ informations:
Follows the list of supported libopencv filters.
+@anchor{dilate}
@subsection dilate
Dilate an image by using a specific structuring element.
@@ -578,6 +579,15 @@ ocv=dilate=5x5+2x2/cross:2
ocv=0x0+2x2/custom=diamond.shape:2
@end example
+@subsection erode
+
+Erode an image by using a specific structuring element.
+This filter corresponds to the libopencv function @code{cvErode}.
+
+The filter accepts the parameters: @var{struct_el}:@var{nb_iterations},
+with the same meaning and use of those of the dilate filter
+(@pxref{dilate}).
+
@subsection smooth
Smooth the input video.
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 177e1ab29a..6d5d8787c7 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -28,7 +28,7 @@
#define LIBAVFILTER_VERSION_MAJOR 1
#define LIBAVFILTER_VERSION_MINOR 70
-#define LIBAVFILTER_VERSION_MICRO 1
+#define LIBAVFILTER_VERSION_MICRO 2
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
LIBAVFILTER_VERSION_MINOR, \
diff --git a/libavfilter/vf_libopencv.c b/libavfilter/vf_libopencv.c
index 497d4cab85..8401b4dcb7 100644
--- a/libavfilter/vf_libopencv.c
+++ b/libavfilter/vf_libopencv.c
@@ -291,6 +291,13 @@ static void dilate_end_frame_filter(AVFilterContext *ctx, IplImage *inimg, IplIm
cvDilate(inimg, outimg, dilate->kernel, dilate->nb_iterations);
}
+static void erode_end_frame_filter(AVFilterContext *ctx, IplImage *inimg, IplImage *outimg)
+{
+ OCVContext *ocv = ctx->priv;
+ DilateContext *dilate = ocv->priv;
+ cvErode(inimg, outimg, dilate->kernel, dilate->nb_iterations);
+}
+
typedef struct {
const char *name;
size_t priv_size;
@@ -301,6 +308,7 @@ typedef struct {
static OCVFilterEntry ocv_filter_entries[] = {
{ "dilate", sizeof(DilateContext), dilate_init, dilate_uninit, dilate_end_frame_filter },
+ { "erode", sizeof(DilateContext), dilate_init, dilate_uninit, erode_end_frame_filter },
{ "smooth", sizeof(SmoothContext), smooth_init, NULL, smooth_end_frame_filter },
};