An algorithm for finding a single good path through the set of edge points detected by the gradient of Gaussian operator is discussed. First, an algorithm for finding contours at one scale is presented, then extensions of that algorithm which use multiple scales to produce improved detection of weak edges are presented. Edge points are linked along the gradient maxima ridges using a weighted tree search algorithm. The weights at each point measure noise, curvature, gradient magnitude, and contour length. In the algorithm for multiple scales the search for a contour proceeds as for the single scale, using the largest scale, until a best partial contour at that scale has been found. Then the next finer scale is chosen and the neighborhood around the end points of the contour are examined to determine possible edge points in a direction similar to the end point of the contour. The original algorithm is then followed for each of the points satisfying the above condition, and the best is chosen as an extension to the original edge. A second algorithm uses gradient information obtained at multiple scales in the non-maxima suppression operation. The coarsest scale is used first. Then the edge points are shifted as the non-maxima suppression is applied at finer scales. Both algorithms improve the. detection of edge contours with little increase in noise. The second also reduces the delocalization occurring at larger scales.