In the fields of computer vision and image processing, edge detection refers to the identification and localization of significant changes in a digital image. This article presents a survey of widely-used edge detection techniques including linear approaches, morpohlogical operations, multi-resolution analysis, and machine learning methods. Since there exists no single method that is applicable in all situations, different methods are deployed for different applications. A hierarchical framework based on multiple criteria has been proposed here that can facilitate the process of selecting the most appropriate edge detection method in a given scenario. Use of the proposed framework has been explained through an example of medical images. Finally, possible areas for further exploration have been highlighted.