On Mon, 22. Jun 17:29, Valery Kot wrote: > === Version 1 === > vf_edgedetect video filter implements Canny algorithm > (https://en.wikipedia.org/wiki/Canny_edge_detector) > > Important part of this algo is the double threshold step: pixels above > "high" threshold being kept, pixels below "low" threshold dropped, > pixels in between kept if they are attached to "high" pixels. > > This is implemented in the double_threshold() function. However, > condition to start checking attached pixels, as it is now and as it > was in FFmpeg since 2012, only allows checking on the boundary, not > inside the video. It is a very lucky coincidence that those boundary > pixels are always 0, otherwise following lines would be reading > outside of the buffer. > > As it is now, double_threshold() only implements "high" thresholding. > As a result, edges are either noisy or fragmented, depending on "high" > threshold selection; "low" threshold is simply ignored. > > Attached one char patch fixes this. > > === Version 2 === > - include avfilter/ in commit message > - update FATE tests
> From 69bbe24bfe23efa3874448f28451b1abaa209d5d Mon Sep 17 00:00:00 2001 > From: vkot <valery....@kinetiq.tv> > Date: Fri, 19 Jun 2020 16:57:13 +0200 > Subject: [PATCH] avfilter/vf_edgedetect: properly implement double_threshold() > > --- > 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) && lgtm. I saw a small improvement when testing. Would be nice to allow weak edges that become strong to trigger neighboring weak edges in the future. Thanks, -- Andriy _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".