I am trying to develop an automated OCR system for images obtained from the internet. The images mostly consist of computer generated text imposed on a background, so the OCR should produce near perfect results. However, the texts vary in color, and the background its imposed on can be of different colors too or even photos. The OCR tool often generates garbage when the colors are different enough, so I have to binarize the image properly, cleaning up the text content.
I found a promising article here, and implemented the algorithm using Python OpenCV. However, it seems to work poorly for most computer generated text. I also tried some local binarization algorithms, but they also fail to separate most text colors, like red on an orange background, the details being lost once converted to grayscale.
Is there an alternative image processing algorithm for this task ?