9. A computer program product comprising a computer usable non-transitory medium having a computer readable program code embedded therein for controlling a data processing apparatus, the computer readable program code configured to cause the data processing apparatus to execute a process for binarizing a gray-scale document image which has been generated by scanning a paper-based document, the process comprising: (a) identifying text characters in the gray-scale document image, including: performing an initial binarization of the gray-scale image to generate an initial binary image; and extracting connected image components in the initial binary image as text characters; (b) classifying each text character identified in step (a) as either a halftone text character which is a character formed by a halftone pattern or a non-halftone text character based on a topological analysis of the text character which determines a number of holes in a connected image component corresponding to the text character, including: calculating an Euler number for each text character; and classifying a text character as halftone text if the Euler number for the text character is below a predetermined value, and classifying a text character as non-halftone text if the Euler number of the text character is equal to or above the predetermined value; and (c) binarizing halftone text characters using pixel value characteristics obtained from only halftone text characters classified in step (b).
9. A computer program product comprising a computer usable non-transitory medium having a computer readable program code embedded therein for controlling a data processing apparatus, the computer readable program code configured to cause the data processing apparatus to execute a process for binarizing a gray-scale document image which has been generated by scanning a paper-based document, the process comprising: (a) identifying text characters in the gray-scale document image, including: performing an initial binarization of the gray-scale image to generate an initial binary image; and extracting connected image components in the initial binary image as text characters; (b) classifying each text character identified in step (a) as either a halftone text character which is a character formed by a halftone pattern or a non-halftone text character based on a topological analysis of the text character which determines a number of holes in a connected image component corresponding to the text character, including: calculating an Euler number for each text character; and classifying a text character as halftone text if the Euler number for the text character is below a predetermined value, and classifying a text character as non-halftone text if the Euler number of the text character is equal to or above the predetermined value; and (c) binarizing halftone text characters using pixel value characteristics obtained from only halftone text characters classified in step (b). 13. The computer program product of claim 9 , wherein step (d) comprises applying binary morphological operations to all non-halftone text characters or to all halftone text characters or to both.