Показать полную графическую версию : Сравнение картинок
Подскажите, пожалуйста, как сравнить изображения букв, наподобие распознавания (Builder желательно)? Может, у кого-нить есть работающий код подобной программы? Пожалуйста! Очень нужно!!
кода нет, идею подскажу:
1. допустим текст почти выровнен по строчкам горизонтально
2. вычисляешь высоту строчки - отсюда размер шрифта
3. рисуешь в картинку алфавит шрифтом данного размера
4. Начинаешь проходить строчки от начала до конца с шагом распознанной буквы
5. Для распознавания буквы используешь операцию кореляции
double corr = 0.;
double mid1 = 0.;
double mid2 = 0.;
for(x=0; x<X; ++x)
for(y=0; y<Y; ++y)
mid1 += image1[x+x_offset,y+y_offset];
mid1/=X*Y;
for(x=0; x<X; ++x)
for(y=0; y<Y; ++y)
mid2 += image2[x,y];
mid2/=X*Y;
for(x=0; x<X; ++x)
for(y=0; y<Y; ++y)
corr+=(image1[x+x_offset,y+y_offset] - mid1)*(image2[x,y] - mid2);
та буква, у которой corr будет максимальным по модулю и есть мамая похожая. Нужно правда минимальный порог установить, вдруг неизвестный символ.
Работает эта процедура очень медленно. Надёжность как у файнридера тоже не гарантирую.
а если у меня картинка одной буквы, т е на картинке больше кроме нее нет ничего?
значит проблем меньше. x_offset=0, y_offset=0, не надо пункты 1,2,4: сделать набор 33 букв (для нашего алфавита), посчитать 33 кореляции и выбрать максимальную
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.