No hay nada como el mejor conjunto. Tenga en cuenta que las imágenes digitales pueden ser adquiridas por diferentes dispositivos de captura y cada dispositivo puede incorporar su propio sistema de preprocesamiento (filtros) y otras características que pueden cambiar drásticamente la imagen e incluso agregarles ruidos. Entonces, cada caso debería tratarse (preprocesarse) de manera diferente.
Sin embargo, dan lugar a intervenciones commmon que se pueden utilizar para mejorar la detección, por ejemplo, una muy básica sería la de convertir la imagen a escala de grises y aplicar una threshold a binarizar la imagen. Otra técnica que he usado anteriormente es the bounding box, que le permite detectar la región de texto. Para eliminar los ruidos de las imágenes, puede que le interesen las operaciones erosionar/dilatar. Demuestro algunas de estas operaciones en this post.
Además, hay otros mensajes interesantes acerca de OCR y OpenCV que usted debe tomar un vistazo:
Ahora, sólo para mostrar un enfoque simple que puede ser utilizado con su imagen de muestra, esto es el resultado de invertir el color y aplicar un umbral:
cv::Mat new_img = cv::imread(argv[1]);
cv::bitwise_not(new_img, new_img);
double thres = 100;
double color = 255;
cv::threshold(new_img, new_img, thres, color, CV_THRESH_BINARY);
cv::imwrite("inv_thres.png", new_img);
¿podría usted por favor cargar esas imágenes de muestra aquí? enlace da 403 prohibido – Alupotha