По проблеме распознования образов
Я многократно уже писал программы для распознавания картинок.. Сразу хочу отметить, что универсальный механизм создать невозможно (ну или практически невозможно). А вот для конкретных случаев задача значительно упрощается. Но я использовал практически для всех видов картинок стандартный набор операций, а именно:
1. Перевод картинки в ч.б. (желательно без отенков) стараясь таким образом не затереть важные мне элементы рисунка
2. Уничтожение мусора. В приведенной картинке, где на заднем плане используется текст, то там мусор убрать достаточно просто, для этого нужно пройтись по всем пикселям (или даже лучше не по всем, а прыжками, скажем через 3-5 пикселя) и сравнивать при этом соседние пиксели, расчитывая на то что если выбранный нами пиксель имеет черный цвет, а рядом лежащие - белый, то вероятнее всего изначально выбранный нами пиксель принадлежит тонкой букве, и мы его смело можем закрасить в белый (и даже не только его, а и рядом прилегающие черные пиксели)
3. Сравнивание оставшегося изображения с нашими картинками(чаще всего цифрами, буквами). Поскольку тут присутствует произвольный поворот изображения, то при сравнивании изображений не стоит об этом забывать.
И самое главное - оптимизмровать все процессы на сколько это возможно, потому что если не правильно все сделать, то решение такой задачи для компьютера окажется весьма трудоемким занятием и может затянуться до нескольких десятков секунд...
При создании более унивесальной процедуры определения изображения я не придумал ничего лучше, как:
1. Определение типа картинки (что бы подобрать подходящий для нее тип решения)
2. Собственно применения к ней заранее написанного механизма решения для данного типа картинки.