In this paper, we present a new method for detecting curvilinear structures in a gray-scale image. The concept of skeleton extraction is introduced to detect more general structures such as tapering structures. A skeleton is extracted from the Euclidean distance map that is constructed based on the edge map of an input image. Then, skeletal points are classified into three types (RIDGE, RAVINE and STAIR), and connected points belonging to the same type are grouped to form a skeletal segment. Our detector satisfies many of desirable properties required of a curvilinear structure detector, and moreover it overcomes some limitations of conventional approaches.