An algorithm is proposed, which combines global and local information of fingerprint images to detect singular points. It’s mathematically proven that normal lines of gradient of double orientation field(GDOF) pass through singular points. Normal lines of GDOF use rather global information to detect candidate singular points. Fingerprint image is divided into blocks and normal lines of GDOF are drawn. The number of normal lines that pass through each block is accumulated. The block that has the maximum number corresponds to a candidate singular point. It can be seen as a kind of Hough transform(HT). As candidate singular points detected by global information may have a little warp from their real positions, it’s necessary to use local information to refine their positions. Poincare index is chosen, and uses local information to refine the candidate singular points. This makes our algorithm more robust to noise than methods that only use local information. What’s more, the pairs of the detected singular points are used to classify fingerprint. Experimental results show that our algorithm performs well and fast enough for real time application in databases NIST-4.