aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter/vf_edgedetect.c
diff options
context:
space:
mode:
authorValery Kot <valery.kot@gmail.com>2020-06-22 17:29:21 +0200
committerAndriy Gelman <andriy.gelman@gmail.com>2020-07-06 23:20:53 -0400
commit855d51bf481dddf425f9a82e4d1aa2cdc93c22f8 (patch)
tree6a5829f3fdce2cbc3e043a6e5655564f5e1005bf /libavfilter/vf_edgedetect.c
parent235a5734e084f2746b4c133bf33cb4579a6ca17f (diff)
downloadffmpeg-855d51bf481dddf425f9a82e4d1aa2cdc93c22f8.tar.gz
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@gmail.com> Reviewed-by: Andriy Gelman <andriy.gelman@gmail.com>
Diffstat (limited to 'libavfilter/vf_edgedetect.c')
-rw-r--r--libavfilter/vf_edgedetect.c2
1 files changed, 1 insertions, 1 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 ||