-
точнее перефразирую вопрос, не пойму в чем причина есть исходная картинка, на ней цифры
нужно сравнить с эталонным шрифтом, дабы определить, что там за цифра нарисована. вроде все элементарно получается, сравнить их попиксельно, пока не будет совпадений, на более большом размере шрифта все нормуль получалось... сам вопрос, я вывожу эталон на канву Tbitmap.canvas.TextOut пробовал Tbitmap.canvas.TextRect все равно циферки каждый раз по разному рисуются, а малейшее изменение, хоть на пиксел, уже не свопадает...по ходу шрифт 8 размера может есть способ более правильного сравнения с эталоном шрифта, не прибегая к выводу на канву?
-
> пробовал Tbitmap.canvas.TextRect все равно циферки каждый > раз по разному рисуются,
Это как?
> малейшее изменение, хоть на пиксел, уже не свопадает
А зачем четко сравникать? Сравнивай нечетко.
-
а малейшее изменение, хоть на пиксел, уже не свопадает
Ну так ведь и вправду не совпадает же.
-
> Wadim005
Не надо добиваться 100% совпадения, установи некий порог, ниже которого символ считается не совпавшим. Сравнивай со всеми символами из эталона, наилучшее совпадение считай искомым символом.
Последовательность такова: 1) Перевод картинки в бинарный вид (черно-белый) 2) Разделение на прямоугольники предположительно содержащие буквы 3) Масштабирование всех прямоугольников до одного размера. 4) Сравнение каждого с эталоном.
-
Но все равно [3] - это примитивный подход. Есть более надежные но и более сложные методы.
-
кароче включив телепатию я понял что ты 1)либо пишеш трутиповым шрифтом типа Arial, а они каждый раз растрируются а если писать растровым шрифтом типа MS Sans Serif то они будут всегда одинаковы 2)либо у тебя стоит включеное сглаживание экранных шрифтов
-
Распознавание текста - это, какбэ, несколько более сложная задача, чем просто сравнение картиноук.
-
> Омлет (10.06.09 20:09) [6]
> это, какбэ, несколько более сложная задача, чем просто сравнение > картиноук.
Какбэ есть множество методов и все имеют право на существование. Если шрифт заранее известен, то сравнение с шаблонами самый быстрый и весьма эффективный метод.
-
delphi - мёртвый язык. лишь мудаки пользуют делфи
-
Master-lomaster, трололо.
зы. у нас тут ещё и тролли завелись?)) чёрт возьми, как давно я тут не был... вспомнить бы пароль наконец.
по теме: имхо, DVM прав. по соотношению качества работы к простоте реализации указанный метод оптимален. Wadim005, переведите исходную картинку в чёрно-белый вид, и просто сравнивайте нечётко, т.е. введите коэффициент совпадения: скажем, из 8х10 = 80 пикселей совпало 70. отсюда следует, что это можно считать распознанной буквой.
-
почему же тролли? ) я к слову программирую на С/С++, Java, JavaFX, C#, Sulverlight, Flex, AIR. так что не надо тут про "трололо". я это не просто так сказал, чтобы засрать всех здесь присутствующих. просто я считаю, что надо развиваться и переходить с этого низшего уровня на более высокие.
-
> Master-lomaster (16.11.09 14:16) [10]
> С/С++, Java, JavaFX, C#, Sulverlight, Flex, AIR
Дааа? Ну и что Вы можете сказать по поводу этих языков? Я еще много названий знаю, но перечислять не хватит максимальной длины поста.
> что надо развиваться и переходить с этого низшего уровня > на более высокие
С - это конечно высочайший уровень.
-
Особенно sUlverlight зачетный язык
-
> надо развиваться и переходить с этого низшего уровня на > более высокие
Какое это имеет отношение к сравнению картинок? Может еще скажете, что от математики надо переходить к философии, как более общей науке?
|