Non c'è niente come il miglior set. Tieni presente che le immagini digitali possono essere acquisite da diversi dispositivi di acquisizione e ogni dispositivo può incorporare il proprio sistema di preelaborazione (filtri) e altre caratteristiche che possono cambiare drasticamente l'immagine e persino aggiungere rumori. Quindi ogni caso dovrebbe essere trattato diversamente (pre-elaborato).
Tuttavia, esistono operazioni commmon che possono essere utilizzati per migliorare l'individuazione, ad esempio, uno molto semplice sarebbe quella di convertire l'immagine in scala di grigio e applicare un threshold binarizzare l'immagine. Un'altra tecnica che ho usato prima è the bounding box, che consente di rilevare l'area di testo. Per rimuovere i rumori dalle immagini potresti essere interessato a operazioni di erosione/dilatazione. Dimostro alcune di queste operazioni su this post.
Inoltre, ci sono altri post interessanti su OCR e OpenCV che si dovrebbe dare un'occhiata:
Ora, solo per mostrare un approccio semplice che può essere utilizzato con l'immagine di esempio, questo è il risultato di invertire il colore e applicare una soglia:

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);
potresti per favore caricare quelle immagini di esempio qui? link dà 403 proibito – Alupotha