Конференция "Media" » Как правильно сравнить две картинки?
 
  • Wadim005 (04.06.09 15:56) [0]
    точнее перефразирую вопрос, не пойму в чем причина
    есть исходная картинка, на ней цифры

    нужно сравнить с эталонным шрифтом, дабы определить, что там за цифра нарисована.
    вроде все элементарно получается, сравнить их попиксельно, пока не будет совпадений, на более большом размере шрифта все нормуль получалось...
    сам вопрос, я вывожу эталон на канву Tbitmap.canvas.TextOut
    пробовал Tbitmap.canvas.TextRect все равно циферки каждый раз по разному рисуются, а малейшее изменение, хоть на пиксел, уже не свопадает...по ходу шрифт 8 размера
    может есть способ более правильного сравнения с эталоном шрифта, не прибегая к выводу на канву?
  • Pavia © (04.06.09 16:28) [1]

    > пробовал Tbitmap.canvas.TextRect все равно циферки каждый
    > раз по разному рисуются,

    Это как?


    >  малейшее изменение, хоть на пиксел, уже не свопадает

    А зачем четко сравникать? Сравнивай нечетко.
  • Медвежонок Пятачок © (04.06.09 17:07) [2]
    а малейшее изменение, хоть на пиксел, уже не свопадает

    Ну так ведь и вправду не совпадает же.
  • DVM © (05.06.09 00:11) [3]

    > Wadim005

    Не надо добиваться 100% совпадения, установи некий порог, ниже которого символ считается не совпавшим. Сравнивай со всеми символами из эталона, наилучшее совпадение считай искомым символом.

    Последовательность такова:
    1) Перевод картинки в бинарный вид (черно-белый)
    2) Разделение на прямоугольники предположительно содержащие буквы
    3) Масштабирование всех прямоугольников до одного размера.
    4) Сравнение каждого с эталоном.
  • DVM © (05.06.09 00:12) [4]
    Но все равно [3] - это примитивный подход. Есть более надежные но и более сложные методы.
  • QAZ (05.06.09 10:38) [5]
    кароче включив телепатию я понял что ты
    1)либо пишеш трутиповым шрифтом типа Arial, а они каждый раз растрируются
    а если писать растровым шрифтом типа MS Sans Serif то они будут всегда одинаковы
    2)либо у тебя стоит включеное сглаживание экранных шрифтов
  • Омлет (10.06.09 20:09) [6]
    Распознавание текста - это, какбэ, несколько более сложная задача, чем просто сравнение картиноук.
  • DVM © (11.06.09 01:54) [7]

    > Омлет   (10.06.09 20:09) [6]


    > это, какбэ, несколько более сложная задача, чем просто сравнение
    > картиноук.

    Какбэ есть множество методов и все имеют право на существование. Если шрифт заранее известен, то сравнение с шаблонами самый быстрый и весьма эффективный метод.
  • Master-lomaster (16.11.09 03:05) [8]
    delphi - мёртвый язык. лишь мудаки пользуют делфи
  • 0x00FF00 (16.11.09 04:13) [9]
    Master-lomaster,
    трололо.

    зы.
    у нас тут ещё и тролли завелись?))
    чёрт возьми, как давно я тут не был...
    вспомнить бы пароль наконец.

    по теме:
    имхо, DVM прав. по соотношению качества работы к простоте реализации указанный метод оптимален.
    Wadim005, переведите исходную картинку в чёрно-белый вид, и просто сравнивайте нечётко, т.е. введите коэффициент совпадения: скажем, из 8х10 = 80 пикселей совпало 70. отсюда следует, что это можно считать распознанной буквой.
  • Master-lomaster (16.11.09 14:16) [10]
    почему же тролли? ) я к слову программирую на С/С++, Java, JavaFX, C#, Sulverlight, Flex, AIR. так что не надо тут про "трололо". я это не просто так сказал, чтобы засрать всех здесь присутствующих. просто я считаю, что надо развиваться и переходить с этого низшего уровня на более высокие.
  • DVM © (18.11.09 13:53) [11]

    > Master-lomaster   (16.11.09 14:16) [10]


    > С/С++, Java, JavaFX, C#, Sulverlight, Flex, AIR

    Дааа? Ну и что Вы можете сказать по поводу этих языков? Я еще много названий знаю, но перечислять не хватит максимальной длины поста.


    > что надо развиваться и переходить с этого низшего уровня
    > на более высокие

    С - это конечно высочайший уровень.
  • zZz (18.11.09 17:45) [12]
    Особенно sUlverlight зачетный язык
  • Омлет © (18.11.09 21:28) [13]
    > надо развиваться и переходить с этого низшего уровня на
    > более высокие

    Какое это имеет отношение к сравнению картинок?
    Может еще скажете, что от математики надо переходить к философии, как более общей науке?
 
Конференция "Media" » Как правильно сравнить две картинки?
Есть новые Нет новых   [120044   +85][b:0][p:0]