[FFmpeg-cvslog] avfilter/vf_edgedetect: properly implement double_threshold()
Valery Kot
git at videolan.org
Tue Jul 7 07:05:37 EEST 2020
ffmpeg | branch: master | Valery Kot <valery.kot at gmail.com> | Mon Jun 22 17:29:21 2020 +0200| [855d51bf481dddf425f9a82e4d1aa2cdc93c22f8] | committer: Andriy Gelman
avfilter/vf_edgedetect: properly implement double_threshold()
Important part of this algorithm is the double threshold step: pixels
above "high" threshold being kept, pixels below "low" threshold dropped,
pixels in between (weak edges) are kept if they are neighboring "high"
pixels.
The weak edge check uses a neighboring context and should not be applied
on the plane's border. The condition was incorrect and has been fixed in
the commit.
Signed-off-by: Andriy Gelman <andriy.gelman at gmail.com>
Reviewed-by: Andriy Gelman <andriy.gelman at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=855d51bf481dddf425f9a82e4d1aa2cdc93c22f8
---
libavfilter/vf_edgedetect.c | 2 +-
tests/ref/fate/filter-edgedetect | 2 +-
tests/ref/fate/filter-edgedetect-colormix | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/libavfilter/vf_edgedetect.c b/libavfilter/vf_edgedetect.c
index a5614ea63b..df8afbd532 100644
--- a/libavfilter/vf_edgedetect.c
+++ b/libavfilter/vf_edgedetect.c
@@ -294,7 +294,7 @@ static void double_threshold(int low, int high, int w, int h,
continue;
}
- if ((!i || i == w - 1 || !j || j == h - 1) &&
+ if (!(!i || i == w - 1 || !j || j == h - 1) &&
src[i] > low &&
(src[-src_linesize + i-1] > high ||
src[-src_linesize + i ] > high ||
diff --git a/tests/ref/fate/filter-edgedetect b/tests/ref/fate/filter-edgedetect
index 23c9953e61..e49639afac 100644
--- a/tests/ref/fate/filter-edgedetect
+++ b/tests/ref/fate/filter-edgedetect
@@ -1 +1 @@
-edgedetect 93ceace33f6636bcdbeb037317c65745
+edgedetect 04ff46bb35edff3dbad4102391516d25
diff --git a/tests/ref/fate/filter-edgedetect-colormix b/tests/ref/fate/filter-edgedetect-colormix
index e828c6bd19..0df17344bc 100644
--- a/tests/ref/fate/filter-edgedetect-colormix
+++ b/tests/ref/fate/filter-edgedetect-colormix
@@ -1 +1 @@
-edgedetect-colormix 1b8658252e2f03fbae30e6d63dd24c7c
+edgedetect-colormix 9f50c5586f899a8f5a10059154d64bde
More information about the ffmpeg-cvslog
mailing list