Я пытаюсь создать более простую установку OCR с помощью openCV. У меня есть это изображение: https://dl.dropbox.com/u/63179/opencv/test-image.pngОбнаружение распознавания с помощью openCV
Я сохранил все возможные символы в качестве изображений и попытался обнаружить эти изображения во входном изображении.
Отсюда мне нужно определить код. Я пытаюсь установить matchTemplate и FAST. Оба, кажется, терпят неудачу (или, более вероятно: я делаю что-то неправильно).
Когда я использовал метод matchTemplate, я нашел края как входного изображения, так и опорных изображений с помощью Sobel. Это обеспечивает рабочий результат, но точность недостаточно.
При использовании метода FAST кажется, что я не могу получить интересные описания из метода cvExtractSURF.
Любые рекомендации по наилучшему способу чтения такого кода?
UPDATE 1 (2012-03-20)
Я имел некоторый прогресс. Я пытаюсь найти ограничивающие прямоугольники символов, но шрифт матрицы убивает меня. Смотрите приведенные ниже образцы:
Моего шрифт: https://dl.dropbox.com/u/63179/opencv/IMG_0873.PNG
Моего шрифт заполнен: https://dl.dropbox.com/u/63179/opencv/IMG_0875.PNG
Других шрифт: https://dl.dropbox.com/u/63179/opencv/IMG_0874.PNG
Как видно в образцах я нахожу ограничивающие прямоугольники для менее сложного шрифта и если я могу заполнить пробел между точками в моем шрифте, он также работает. Есть ли способ добиться этого с помощью opencv? Если я могу найти ограничительную рамку каждого персонажа, было бы гораздо проще распознать персонажа.
Любые идеи?
Update 2 (2013-03-21)
Хорошо, у меня был немного удачи с поиском ограничивающих рамок. См. Изображение: https://dl.dropbox.com/u/63179/opencv/IMG_0891.PNG
Я не уверен, куда идти отсюда. Я попытался использовать шаблон matchTemplate, но я думаю, что это не очень хороший вариант в этом случае? Думаю, это лучше, если вы ищете точное совпадение в увеличенной картине?
Я пытался использовать серфинг, но когда я пытаюсь извлечь дескрипторы cvExtractSURF для каждого ограничивающего блока, я получаю 0 дескрипторов ... Любые идеи?
Какой метод наиболее подходит для использования, чтобы иметь возможность сопоставлять ограничительную рамку с эталонным изображением?
Хорошо, я найду меньше и больше прямоугольников, так что я получу один прямоугольник вокруг каждой точки. Затем я буду измерять расстояние между точками, и если расстояние достаточно мало, я объединю прямоугольники. Таким образом, я должен был бы найти окружающий прямоугольник почти всего персонажа. Когда у меня есть прямоугольник, который достаточно близко, я буду использовать его для обучения приложения, и я, вероятно, смогу сопоставить буквы. Похоже на хороший подход? –
Если вы немного размываете свое изображение, то небольшой трюк, который я описал в обновлении, должен работать напрямую, не учитывая расстояния в точках. Кроме того, добавление предшествующего размера рамки может быть более надежным, чем то, что вы предлагаете (google для «одиночной связи», чтобы увидеть преимущества и риски при рассмотрении расстояний в точках). – sansuiso
Я сделал некоторый прогресс. См. Обновление 2. –