The present manuscript aims at solving four problems of edge detection: the simultaneous detection of all step edges from a fine to a coarse scale; the detection of thin bars with a width of very few pixels; the detection of trihedral junctions; the development of an algorithm with image-independent parameters. The proposed solution of these problems combines an extensive spatial filtering with classical methods of computer vision and newly developed algorithms. Step edges are computed by extracting local maxima from the energy summed over a large bank of directional odd filters with a different scale. Thin roof edges are computed by considering maxima of the energy summed over narrow odd and even filters along the direction providing maximal response. Junctions are precisely detected and recovered using the output of directional filters. The proposed algorithm has a threshold for the minimum contrast of detected edges: for the large number of tested images this threshold was fixed equal to three times the standard deviation of the noise present in usual acquisition system (estimated to be between 1 and 1.3 gray levels out of 256), therefore, the proposed scheme is in fact parameter free. This scheme for edge detection performs better than the classical Canny edge detector in two quantitative comparisons: the recovery of the original image from the edge map and the structure from motion task. As the Canny detector in previous comparisons was shown to be the best or among the best detectors, the proposed scheme represents a significant improvement over previous approaches.