Поддерживает ли Tesseract в Sikuli только одно слово?

1

Сейчас я изучаю Сикули.

Я нахожу, что findText() может соответствовать только некоторой непрерывной строке. (Он не найдет ничего, если между строкой есть пробелы).

Например,

screen.find("Быстрый доступ") выведет исключение Find Failed.

Почему это происходит?

Моя версия Sikuli - 1.1.0.

Теги:
tesseract
sikuli

2 ответа

1

OCR ужасно ненадежна. OCR может найти пробелы, а не то, что он всегда делает. Ошибка может заключаться в том, что вы не обнаруживаете пробел, или может быть, что любая из других букв не распознается правильно. Я нахожу, что я могу использовать OCR на той же странице 10 раз и придумывать 6 или 7 разных результатов. Если текст, который вы ищете, можно выбрать, вы можете получить его в буфер обмена и оценить его гораздо эффективнее оттуда (как в этом SO-ответе).

Если вы должны использовать OCR, иногда первое увеличение на нужном тексте может помочь повысить точность. Кроме того, вы также можете найти его для 3 или 4 наиболее вероятных вариантов вашей целевой фразы.

Вы получаете FindFailed, потому что он не находит вашу точную фразу. Чтобы узнать, что находит OCR, вы можете использовать:

print text() #this will print all text found in your default region (usually the entire screen) 

-или-

print myRegion.text() #to print all text in a previous defined region, myRegion.
0

Tesseract определяет минимальный размер шрифта 20 пикселей. Типичный текст на экране составляет от 7 до 10 пикселей. Сикули должны увеличиваться в два или три раза, иначе процесс окажется "очень ненадежным".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню