Filters in Image Processing Edge Detection David Svoboda email: svoboda@fi.muni.cz Centre for Biomedical Image Analysis Faculty of Informatics, Masaryk University, Brno, CZ CQIA November 15, 2019 David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 1/65 Motivation Edge detection - the most commonly used operation in image analysis. David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 4 / 65 Outline i Fu ndamentals ^ First Derivative Based @ Second Derivative Based @ Template Based (i) Scale-Space Based £ Edge Evaluation Methods David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 2 / 65 Motivation What is an edge? • black-white interface • black-white interface with noise • texture interface o colour interface David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 5 / 65 Motivation What is an edge? step edge roof edge variance based edge ramp edge line edge David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 6 / 65 Edge Detection Principal Approaches • First derivative based a Gradient magnitude - strength of an edge: |W(x,y)|, df dx + df dy or max df dx df dy o Gradient direction - direction perpendicular to an edge: W(x,y) or f^tan"1 (jf^) o Second derivative based - zero crossings of the second derivative o Template matching based David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 8 / 65 Motivation What is an edge? There is a number of possible definitions of an edge: o step edge - the edge is simply a change in grey level occurring at one specific location • ramp edge - the actual position of the edge is considered to be the center of the ramp 9 roof edge - lambda shaped signal » line edge - 5 impulse in signal • variance (texture) base edge - a change in variance levels Notice: Edges are significant and abrupt changes in a signal. David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 7 / 65 First Derivative Based Analysis Example: High-frequent 1-D perturbation f{x) = e sin ^ become arbitrary small for e —>■ 0. However, its derivative 1 / x f'M = - COS (4r e \ez exceeds all bounds. Notice: High-frequent fluctuations (noise) in the original signal can create unbounded perturbation in its derivatives. David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 10 / 65 First Derivative Based Analysis Interpretation in the Fourier domain: ID: T dxm (U) = (27Tiu)mT(f)(u) 2D: / Qm+nf \ T \dxndym) = (27r'wx)"(27r/a;y)mJr(/r)(wx,Wy) Derivatives in the spatial domain lead to the multiplication in the Fourier domain. Thus, high-frequency components (e.g. noise) are amplified. Remedy: Perform lowpass (e.g. Gaussian smoothing) filtering before computing derivative! David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 11 / 65 First Derivative Based Roberts Operator • Diagonally oriented operator • One of the oldest edge detectors with the following convolution masks: +1 0 0 -1 0 +1 -1 0 (a) Rx (b) Ry Figure: Roberts kernels \Wf(m,n)\ = \f(m,n)-f(m + l,n + l)\ + \f(m,n + l)-f(m + l,n)\ David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 13 / 65 First Derivative Based Gradient Estimator |W(m, n)\ = J(Axf(m, n)f + (Ayf(m, n)f o Version 1: Axf{m, n) Ayf(m, n) o Version 2: Axf{m,n) -. Ayf(m,n) -- Notice: A .. . difference operator f(m, n) — f(m — 1, n) f(m, n) — f(m, n — 1) f(m + 1, n) - f(m - 1, n) f(m, n + 1) - f(m, n - 1) David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 12 / 65 First Derivative Based Sobel Operator • Based on two convolution kernels Sx and Sv 1 0 -1 2 0 -2 1 0 -1 1 2 1 0 0 0 -1 -2 -1 (a) Sx (b) Sy Figure: Sobel kernels |Vf(m, n)\ = J(Axfy_smooth(m, n))2 + (Ay/rx_smoof/i(m, n))2 David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 14 / 65 First Derivative Based Canny Edge Detector John Canny [Canny-86] specified three criteria that an edge detector must address: o Error rate - the edge detector should respond only to edge, and should find all of them; no edges should be missed • Localization - the distance between the edge pixels as found by the edge detector and the actual edge should be as small as possible • Response - the edge detector should not identify multiple edge pixels where only a single edge exists Canny assumed: • A step edge subject to white Gaussian noise. • The edge detector was a convolution filter p that would smooth the noise and locate the edges. The problem was to identify the filter that optimizes the three edge detection criteria. David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 15 / 65 First Derivative Based Canny Edge Detector - Filter Design • Canny attempts to find the filter p that maximizes the product SNR x Loc subject to the multiple-response constraint. The result is too complex to be solved analytically. 9 An efficient approximation turns out to be the first derivative of a Gaussian g(x) = e ^2: p(x) « g'(x) X -e ta2 David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 17 / 65 First Derivative Based Canny Edge Detector In one dimension, the response of the filter p(x) of width 1/1/ to an edge is given by the convolution: w h(x)= j f(t)p(x-t)dt -w where f(t) denotes the input signal. The three criteria are expressed as: Error rate: Localization: Response: A J p(x)dx SNR -- -w w a j p2(x)dx -W Loc Ap'(O) w a j [p'(x)]2dx -W x7 7T — OO oo / p'2(x)dx David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 16 / 65 First Derivative Based 2D Canny Edge Detector - Filter Design 9 First, the gradient direction r(x,y) is estimated at some point (x,y). If the image is noise free then r(x,y) = Vf(x,y). • Unfortunately, the image is usually noisy therefore we smooth the image by Gaussian (x2+y2)/2a2 Thus, we have G(x,y) = e V(G*f)(*,y) r{x,y) ||V(G*f)(x,y)|| o We know that ID Canny filter is equal to the derivative of the Gaussian. For that reason we compute Gr = — dr Filters in Image Processing David Svoboda (CBIASFI) autumn 2019 18 / 65 First Derivative Based 2D Canny Edge Detector - Filter Design o Edge points show up as local maxima in the gradient image, and so if there is an edge passing through (x,y) in the direction r(x,y) then there will be a local maximum in the image convolved with Gr, so that d dr (Gr*f) = 0. » The gradient magnitude at this point will be: \\Gr*f\\ = \\{r-VG)*f\\ = HillVG* f\\. Note that ^ /~\ , dG r dG f and 8G_ dx d_ dx -(x2+y2)/2a2 -2xe-^y2^2 = g'(x)g(y) David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 19 / 65 First Derivative Based Canny Edge Detector - post-processing Nonmaxima Suppression • Goal: thinning of edges to a width of 1 pixel • In every edge pixel, consider the grid direction (out of 4 directions) that is "most orthogonal" to the edge. o If one of the two neighbours in this direction has a larger gradient magnitude, remove the central pixel from the edge map. David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 21 / 65 First Derivative Based 2D Canny - Algorithm (J) Read in the image f to be processed. (D Create a ID Gaussian mask g to convolve with f. The standard deviation a of this Gaussian is a parameter to the edge detector. © Create a ID mask for the first derivative of the Gaussian in the x and y direction; call these gx and gy. The same a value is used as in step 2 above. 9 Convolve the image f with g along the rows to give the x component image fx, and down the columns to give the y component image fy. © Convolve fx with gy {orthogonal directions) to give f£, the x component of f convolved with the derivative of the Gaussian, and convolve fy with gx to give fy. (D The magnitude of the result is computed at each pixel (x,y) as: \VG*f{x,y)\ = Jf&x,yy + Mx,yY David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 20 / 65 First Derivative Based Canny Edge Detector - post-processing Hysteresis Thresholding o Goal: extract only relevant edges. • Use points above the upper threshold as seed points of relevant edges. 9 Add all neighbours that are below the upper threshold, but above the lower threshold. David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 22 / 65 First Derivative Based Canny Edge Detector - Summary Some Important Properties o One of the most popular edge detectors (benchmark) • Taken as "ground truth" among the others o Optimal under certain conditions (step edges & white Gaussian noise) • Canny does not produce continuous edges David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 23 / 65 First Derivative Based Rothwell Edge Detector An example Figure: (left) original image; (centre) Canny output; (right) Rothwell modified edge detector output David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 25 / 65 First Derivative Based Rothwell Edge Detector Uses the idea of Canny but modifies the "nonmaxima suppression" step, since the edge direction is not correct near corners and junctions: • topological based approach • thinning (nonmaxima suppression) is modified to preserve topological properties of the objects in the image David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 24 / 65 Second Derivative Based Edge Detectors Idea: A maximum of the first derivative, i.e. an edge, will occur at a zero crossing of the second derivative. The most typical (ID) approximation: A2f(m) f(m + 1) - 2f(m) + f(m - 1) H2 0{h2) Standard (2D) approximation using Laplacian: V2f(m, n) = fxx(m, n) + fyy(m, n) 0 1 0 Vz ^ I 1 -4 1 h2 0 1 0 David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 27 / 65 Second Derivative Based Edge Detectors Disadvantages: • does not only detect maxima of the first derivative, but also the minima » very sensitive to noise • strong Gaussian smoothing is required —>■ derealization o does not detect edge direction —>■ first derivative evaluation is required Advantages: • generate closed contours • rotationally symmetric o orientation-independent (if the local intensity change is nearly linear) no input parameters but the width of Gaussian David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 28 / 65 Second Derivative Based Edge Detectors Laplacian of Gaussian Due to its shape, LoG is called the Mexican hat function: LoG 0.01 0.008 0.006 0.004 0.002 0 -0.002 -0.004 -0.006 David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 30 / 65 Second Derivative Based Edge Detectors Laplacian of Gaussian (Marr-Hildreth) Given smoothing kernel: G(x,y) = — e ^2 • Laplacian of G(x,y): ■{x2+y2)_a21 V^G(x,y) e 2CT2 is called "Laplacian of Gaussian (LoG)". Example: 5x5 LoG filter mask 0 0 -1 0 0 0 -1 -2 -1 0 -1 -2 16 -2 -1 0 -1 -2 -1 0 0 0 -1 0 0 David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 29 / 65 Second Derivative Based Edge Detectors Laplacian of Gaussian - an example mäm ■1111 a = 1.0 a = 3.0 David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 31 / 65 Second Derivative Based Edge Detectors Difference of Gaussians (DoG) • DoG is close approximation to the LoG filter 9 Convolution kernel is given by DoG = Gai — Ga2 where o\ < 02 o Marr and Hildreth found out that ratio (72 1.6 provides a good approximation to the LoG. David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 32 / 65 Second Derivative Based Edge Detectors Shen-Castan Edge Detector Shape of ISEF for p = 1.2: 0.7 0.6 0.5 0.4 0.3 0.2 0.1 ISEF David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 34 / 65 Second Derivative Based Edge Detectors Shen-Castan Edge Detector Shen and Castan designed infinite symmetric exponential filter (ISEF): • alternative solution to Canny optimal edge detector • they suggest minimizing (in ID): 4 / g2(x)dx ■ J g'2(x)dx 2 _ 0 0 N S4(0) 9 the function that minimizes C/v is the optimal smoothing filter for an edge detector optimal filter function (ISEF for ID): g(x) = §e~p|x|, p > 0 optimal filter function (ISEF for 2D): g(x,y) = a ■ e~p^+^ 9 this produces better signal to noise ratios and better localization than Canny. David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 33 / 65 Second Derivative Based Edge Detectors Shen-Castan Edge Detector - Algorithm ® Convolve the input image with the ISEF (D Localize edges by subtracting the original image from the smoothed one (similar to the Marr-Hildreth algorithm) (D A binary Laplacian image is generated by setting all the positive valued pixels to 1 and all others to 0 © The candidate pixels are on the boundaries of the regions in the binary image Q Postprocessing: • false zero-crossing suppression (similar to Canny nonmaxima suppression) • hysteresis thresholding David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 35 / 65 Template Based Edge Detectors The idea is to use a small discrete template as model of an edge. 2D specific: • several convolution kernels are created by rotating one "seed kernel" 9 kernel with maximum response (e.g. correlation) defines the result at given location clockwise rotation clockwise rotation clockwise rotation B B B A A A A A A B B B B B A B A A A A B A B B A B A B A B B A B A B A A A A B B B B B B A A A David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 37 / 65 Template Based Edge Detectors (Nonlinear) Goodness-Of-Fit Test Based Edge Detection position 1 position 3 9 position 1: no match with given template 9 position 2: bad match 9 position 3: edge found David Svoboda (CBIAOFI) Filters in linage Processing autumn 2019 39 / 65 Template Based Edge Detectors Common (Linear) Edge Detectors Kirsch operator: Robinson operator: -3 -3 5 -3 0 5 -3 -3 5 1 1 1 1 -2 1 -1 -1 -1 Prewitt operator: Sobel operator: 1 1 1 0 0 0 -1 -1 -1 1 0 -1 2 0 -2 1 0 -1 David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 38 / 65 Template Based Edge Detectors Goodness-Of-Fit Test Based Edge Detection Basic principle For each point (x,y) of the image f: <3) apply the mask: (D measure & rotate (D measure & rotate <3> measure © find the highest measure 9 |V/"(x,y)| is the edge strength © a is the edge direction |Vf(x, y)| = max (measure (A, £>)) David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 40 / 65 Template Based Edge Detectors Goodness-Of-Fit Test Based Edge Detection The use of various statistics The measure is a tool for edge detection in the location between two different neighbouring areas. Two sample goodness-of-fit test deciding whether chosen datasets A and B differ may be: o Student's T test (mean and variance) • Fisher/Likelihood-test (variance) X2-test (frequency) a Kolmogorov-Smirnov test (cumulative distribution) • Wilcoxon test (distribution) simply mean difference » etc ... David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 41 / 65 Scale-Space Based Interesting Observation • Structures that can be detected at a coarse scale a can be traced back to smaller scales in order to improve their localization • This has led to the notion of scale-space: Embed an image in a continuum of more and more smoother versions of it. David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 44 / 65 Template Based Edge Detectors Goodness-Of-Fit Test Based Edge Detection Advantages • offer similar ability as traditional gradient based detectors • give better performance on noisy images and texture images • the statistical filter incorporates a process of edge tracking inherent within the algorithm Drawbacks o slower • due to predefined templates these cannot find corners correctly David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 42 / 65 Scale-Space Based (a) a = 1 (b) a = 3 (c) a = 5 (d) a = 10 (e) a = 20 (f) a = 30 David Svoboda (CBIAOFI) Filters in linage Processing autumn 2019 45 / 65 Edge Evaluation Methods Fundamentals How to solve the problem of evaluating the performance of edge detectors? I Given ground truth (GT) image and the edge map (EM), we can report the following statistics: • true positive (TP) • false positive (FP) • true negative (TN) o false negative (FN) Monitoring of only one measure may lead to wrong conclusions. Tuning a detector to increase the TP score generally also results in a higher FP score._ • sensitivity = TP/(TP+FN) • specificity = TN/(TN+FP) • accuracy = (TP+TN)/(TP+FN+TN+FP) David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 47 / 65 Pratt's Figure Of Merit (FOM) The similarity measure designed by Pratt is defined as follows: i !EM. i i=i where 9 Igt ■ ■ ■ number of pixels in GT i em ■ ■ ■ number of pixels in edge map • lN = max(/GT, I em) • (3 . . .scaling (magic) constant (typically set to 1/9) a d .. .separation distance between an actual edge pixel in EM and its correct position in the GT • FOM = 1 is valid for perfect match David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 49 / 65 Edge Evaluation Method List of the most utilized evaluation methods: Utilization of Canny's edge detector as a benchmark [Canny] 9 Pratt's Figure of Merit [Pratt] • Local Coherence [Kitchen] • ROC curves [Bowyer] • Pixel Correspondence Metric [Prieto] Notice: Keep in mind, that the majority of similarity metrics manage only binary data (binary edges). David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 48 / 65 Local Edge Coherence The aim of this measure is to inspect the thinness and coherence of an edge in each pixel. Legend: 9 brown ... edge 9 pink ... inspected pixel • arrows . . .gradient direction David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 50 / 65 Local Edge Coherence Given an edge direction d at some given x pixel we measure: <3) how well an edge pixel x is continued on the left if neighbour k is an edge pixel 0, L{k) otherwise where d is the edge direction at the pixel being tested, do is the edge direction at its neighbor to the right, d\ is the direction of the upper-right neighbour, and so on counterclockwise about the pixel involved. The function dist is a measure of the angular difference between any two angles: dist(a, ß) David Svoboda (CBIASFI) ß\ ^3 bd2 ^1 )d6 cj? k = 3 Filters in linage Processing autumn 2019 51 / 65 Local Edge Coherence CD The overall continuity measure C is taken to be the average of the largest value of L(k) and the largest value of R{k). © An edge should be thin line, one pixel wide. The thinness measure 7 is the fraction of the six pixels in the 3x3 neighbourhood, excluding the center and the two pixels found by L(k) and R{k), that are the edge pixels. (D The overall evaluation of the edge detector is E2 = jC + (1 -7)7 where 7 is a constant. David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 53 / 65 Local Edge Coherence (D A similar function measures directional continuity on the right of the pixel x: R(k) dlSt^d, dfc^dlSt d — 'f neighbour k is an edge pixel 0, otherwise David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 52 / 65 ROC curves Definition Let ground truth (GT) be a reference image in which: o black ... edge • gray ... no-edge white ... "don't care" ROC = Receiver Operating Characteristics David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 54 / 65 ROC curves Algorithm Airplane Image - Iteration 1 (4x4x7) Sample the parameter space of an edge detector. For each sample do • execute the edge detector, • evaluate FN and FP count, » put (FN, FP)-point into the graph. Analyze the points and construct the ROC curve. 0.05 0.1 0.15 02 025 0.3 0.35 0.4 0.45 0.5 % Unmatched GT Edges ROC curve construction A point P appears on the ROC curve only if no other point is included in the axis-oriented rectangle demarcated by origin (0,0) and P. David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 55 / 65 Pixel Correspondence Metric (PCM) lotivation The common evaluation methods classify this situation GT (1 0 0 o \ 0 1 0 0 0 0 0 0 ^ o 0 0 o ) EM (0 0 0 o \ 0 1 0 0 0 0 0 ^ o 0 0 o ) as one correctly detected edge pixel, one misdetection, and one false alarm. The only mistake is the small diagonal shift! David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 57 / 65 ROC curves Aggregation Average several ROC curves, each generated from different image. • The ideal point is (FN,FP)=(0,0) —>■ the ROC curve with the lower "area under the curve" is the better one. Carry Black Sobel Rothwell Smith Sarkar 0.02 0.04 David Svoboda (CBIAOFI) % Unmatched GT Edges Filters in Image Processing Pixel Correspondence Metric (PCM) autumn 2019 56 / 65 David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 58 / 65 Pixel Correspondence Metric (PCM) What are "Bipartite Graphs"? Let G(V, E) be an undirected graph with vertex set V and edge set E. The graph Q is bipartite if the vertex set V can be partitioned into two disjoint sets V+ and V~: a match Ai is a subset of E such that no two edges share a vertex • vertex is matched if it is incident to an edge in Ai and unmatched otherwise • edge is matched if it contained in Ai and unmatched otherwise David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 59 / 65 Pixel Correspondence Metric (PCM) Cost of match Let Ai(f, g) be some match between two images f and g. The cost of a match of two particular pixels f(i,j) and g(k,l) is: \Wj)-g(kJ C(f(iJ),g(k,l)) = l-S((iJ),(k,l))ll max value Example: The cost of match between two pixels f(3, 35) = 140 and g(5, 36) = 130 from 8-bit images is: C(f(3,35),g(5,36)) = 1-S((3,35),(5,36))- (^1- |1402~513Q|^) = -^(i-i) = 1 - 0.69(0.961) = 0.337 David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 61 / 65 Pixel Correspondence Metric (PCM) Separation Let f and g be two images of the same dimensions. The separation S between the pixels in positions (/,_/) and (/c, /) is defined as: S((/J),(/c, /)) = E(max(|/c-/|,|/-y|)): where E(d) G [0; 1] is a normalized function that represents a weighting dependent on the chessboard distance between pixels: E(d) = (1, 0.9, 0.65,0.5) | c/ = 0 ... 3 David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 60 / 65 Pixel Correspondence Metric (PCM) Getting optimal match o EM & GT .. .two disjoint parts (V+ and V~) of bipartite graph. • The weight of edge connecting pixels f(i,j) and g(k, I): W= \C(f(i,j),g(k,l))- (max value)] • The cost of match for the whole graph C(AA) is the accumulated value of • all the weights of the edges in M. plus • the accumulated value of all the unmatched vertices (the value of the pixel that the vertex represents) • Optimal match Ai0pt{f, g) is a match with minimal cost among all possible matches. David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 62 / 65 Pixel Correspondence Metrie (PCM) Definition Pixel Correspondence Metrie PCMv(f,g) = 100 [1 C(Mopt(f,g)) \fug\ Some properties: 9 PCMv(f,g) E [0;100] • If images f = g then PCMv(f,g) = 100 » Search for optimal match in bipartite graphs is too hard. The common way is to solve the task locally. • This method is capable of working with grayscale data. David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 63 / 65 You should know the answers ... o What are the pros and cons of the first derivative based edge detection? Explain the idividual items. 9 Compare Sobel and Canny's operator. • Propose a simple pseudocode for nonmaxima suppression algorithm. • In terms of edge detection, what does zero-crossing mean? • How do we get/compute an edge direction by template based edge detectors? o Explain the use of sensitivity, specificity, and accuracy. Show the examples. • How would you measure the edge coherence? Explain in detail. o When constructing the ROC curves, what is the size of parametric space for Roberts operator? 9 When measuring the quality of edge detection, how would you assign the corresponding pixels from EM and GT? David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 65 / 65 Bibliography O Lim, D. H. Robust edge detection in noisy images. Comput. Statist. Data Anal. v50. 803-812, 2006 9 deSouza, P. Edge detection using sliding statistical tests. Comput. Vision Graphics Image Process. v23 il. 1-14, 1983 • Bowyer K. W., Kranenburg Ch., Dougherty S. Edge detector evaluation using empirical ROC curves, Computer Vision and Image Understanding 84 (1), October 2001, 77-103 • Prieto M. S., Allen A. R. A similarity metric for edge images, IEEE TPAMI 25 (10): pp 1265-1273; 2003 9 Kitchen, L. and Rosenfeld, A. Edge Evaluation Using Local Edge Coherence, IEEE TSMC, Vol 11. 9:597-605, 1981 9 Canny, J. A computational approach to edge detection. IEEE Trans. Pattern Anal. Mach. Intell. 8, 6 (Nov. 1986), 679-698. • Rothwell, C, Mundy, J., Hoffman, W. and Nguyen, V.-D. Driving Vision by Topology, Technical Report No. 2444, INRIA, 1994 Marr, D. and Hildreth, E. Theory of edge detection. In Proc. Royal Soc. Lond., volume B 207, pages 187-217, 1980 • Shen, J. and Castan, S. An optimal linear operator for step edge detection. Computer Vision, Graphics and Image Processing, 54(2):112-133, March 1992 9 Witkin, A. P. Scale-space filtering, Proc. 8th Int. Joint Conf. Art. Intell., Karlsruhe, Germany, 1019-1022, 1983 David Svoboda (CBIASFI) Filters in Image Processing autumn 2019 64 / 65