]> git.sesse.net Git - ffmpeg/commitdiff
libavfilter: Add dehaze-filter option in existing derain.
authorXuewei Meng <xwmeng96@gmail.com>
Thu, 22 Aug 2019 10:28:44 +0000 (18:28 +0800)
committerSteven Liu <lq@chinaffmpeg.org>
Mon, 26 Aug 2019 02:59:01 +0000 (10:59 +0800)
Add the support of dehaze filter in existing derain filter source
code. As the processing procedure in FFmpeg is the same for current
derain and dehaze, we reuse the derain filter source code. The
model training and generation scripts are in repo
https://github.com/XueweiMeng/derain_filter.git

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Xuewei Meng <xwmeng96@gmail.com>
doc/filters.texi
libavfilter/vf_derain.c

index 2fbb47918622165c0f2f5cd79a6634a2298d12b4..7759fe177b95830536d214340ed1cb49973907eb 100644 (file)
@@ -8449,6 +8449,18 @@ files (.pb) by using tools/python/convert.py
 The filter accepts the following options:
 
 @table @option
+@item filter_type
+Specify which filter to use. This option accepts the following values:
+
+@table @samp
+@item derain
+Derain filter. To conduct derain filter, you need to use a derain model.
+
+@item dehaze
+Dehaze filter. To conduct dehaze filter, you need to use a dehaze model.
+@end table
+Default value is @samp{derain}.
+
 @item dnn_backend
 Specify which DNN backend to use for model loading and execution. This option accepts
 the following values:
index c380b401226c04a601c494b03c4f3a49efbe373a..ddf3632e4680cf9df2f69e9192124367958571d8 100644 (file)
@@ -34,6 +34,7 @@
 typedef struct DRContext {
     const AVClass *class;
 
+    int                filter_type;
     char              *model_filename;
     DNNBackendType     backend_type;
     DNNModule         *dnn_module;
@@ -46,6 +47,9 @@ typedef struct DRContext {
 #define OFFSET(x) offsetof(DRContext, x)
 #define FLAGS AV_OPT_FLAG_FILTERING_PARAM | AV_OPT_FLAG_VIDEO_PARAM
 static const AVOption derain_options[] = {
+    { "filter_type", "filter type(derain/dehaze)",  OFFSET(filter_type),    AV_OPT_TYPE_INT,    { .i64 = 0 },    0, 1, FLAGS, "type" },
+    { "derain",      "derain filter flag",          0,                      AV_OPT_TYPE_CONST,  { .i64 = 0 },    0, 0, FLAGS, "type" },
+    { "dehaze",      "dehaze filter flag",          0,                      AV_OPT_TYPE_CONST,  { .i64 = 1 },    0, 0, FLAGS, "type" },
     { "dnn_backend", "DNN backend",             OFFSET(backend_type),   AV_OPT_TYPE_INT,    { .i64 = 0 },    0, 1, FLAGS, "backend" },
     { "native",      "native backend flag",     0,                      AV_OPT_TYPE_CONST,  { .i64 = 0 },    0, 0, FLAGS, "backend" },
 #if (CONFIG_LIBTENSORFLOW == 1)