A new non-linear edge enhancement filter is proposed which is insensitive to edge profile symmetry, but is sensitive to the local spatial coherence of the image. Because the filter is insensitive to profile symmetry, the response combination problem is avoided. The filter is suitable for enhancing edges in natural scenes, in which variations in illumination, surface reflectance and surface orientation result in a wide variety of edge profile symmetries. In most applications, filter response is then compared to a threshold to detect edges. The magnitude and orientation of the extremal directional second derivative of intensity at each pixel are first determined with the aid of the Krumbein transform. A histogram is then formed of the cumulative response over a small neighbourhood about each pixel as a function of orientation. One or more peaks in the histogram are found, and a representative magnitude and orientation computed. If the width of the histogram peak is sufficiently narrow and its magnitude is large enough, the pixel is assumed to lie on or near an edge. It is given a magnitude and orientation representative of the histogram peak. Peak width and magnitude are shown to be dependent on the presence of sufficient local evidence for an edge, thereby incorporating local structure. By accepting multiple histogram peaks, the algorithm is made to perform well near edge corners and intersections.