Перейти к содержимому

Фотография

Sikulix отказывается искать по русским словам

Sikulix

  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 Alex_Di

Alex_Di

    Новый участник

  • Members
  • Pip
  • 1 сообщений

Отправлено 29 ноября 2019 - 14:54

Здравствуйте, в sikulixapi для java напрочь отказывается  c помощью метода Region.findText()  находить русский текст.

С латиницей всё хорошо (ну не всё конечно, но намного лучше ) , кодировка Utf-8. Подскажите что можно подкрутить.

Заморочился с Graphics2D  -  Текст -> картинка  -> Region.find(pattern) - работает не стабильно.

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


  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 30 ноября 2019 - 20:17

Насколько я помню, чтобы хорошо распознавался текст, нужно подключить Tesseract

https://sikulix-2014...html#textandocr

И переключиться на русский:

tr.setLanguage("rus")
tr.getAPI().doOCR(arg0);

Нашел у себя пример работы, но у меня не через регион и по старому (выше по ссылке приведён пример как использовать по новому), попробуйте добавить себе такие настройки:

import org.sikuli.basics.Settings;    

    static Screen s = new Screen(); 
    
    public static String findText(String path, float simil) throws FindFailed {
        String ft = "";
        initOcr("rus");
        Match m = s.find(new Pattern(path).similar(simil)); // тут я искал вообще-то в два этапа, сначала большой паттерн для области где ищется текст, потом в нём маленький паттерн для самого текста
        ft = m.text();
        stopOcr();
        return ft;
    }       
    
    public static void initOcr(String lang) {
        Settings.OcrDataPath = System.getProperty("user.dir") + "\\sikulixtessdata";
        Settings.OcrTextSearch = true;
        Settings.OcrTextRead = true;
        Settings.OcrLanguage = lang;
        TextRecognizer.reset();
    }
    
    public static void stopOcr() {
        Settings.OcrTextSearch = false;
        Settings.OcrTextRead = false;
    }   

  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных