Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / PrintScreen + Распознавание текста / 9 сообщений из 9, страница 1 из 1
06.02.2013, 15:57
    #38140264
askkas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PrintScreen + Распознавание текста
Добрый день. Существует задача:
1) Сделать скриншот окна приложения.
2) Выбрать из скриншота некоторую область (x1,y1,x2,y2)
3) Для лучшего распознавания Инвертировать цвета области (Белый текст на черном фоне)
4) Распознать текст в рисунке и скопировать его в буфер обмена для последующей работы.

4 Пункт сделан при помощи MODI, т.к. FineReader Engine можно заказать будучи только юридическим лицом, а Tesseract и cuneiForm вообще половину букв не понимают.

Пример готового 4-го пункта на MODI прикладываю. Но как быть с остальными пунктами? В GDI не нашел инвертирования цветов.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 SET TALK OFF   
  SET SAFETY OFF   
  inputFile = "D:\1inv.jpg"  
  strRecText=""  
  Doc1 = CREATEOBJECT('MODI.Document')  
  Doc1.Create(inputFile)  
  Doc1.OCR()  && распознавание всех страниц, если файл многостраничный  
  For imageCounter = 0 To (Doc1.Images.Count - 1) && срабатывает на кождой странице  
      strRecText = ALLTRIM(strRecText)+Doc1.Images(imageCounter).Layout.Text    && помещение результатов работы в строку  
  ENDFOR   
  strtofile(strRecText,"d:\2.txt")     && сохранение распознанного файла на диск  
  Doc1.Close() && очистка  
  
...
Рейтинг: 0 / 0
06.02.2013, 16:19
    #38140319
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PrintScreen + Распознавание текста
Тут пример как скриншот сделать.
Для вырезания/инвертирования можно какой-нибудь графический софт использовать. Например www.imagemagick.org работает из командной строки.
Про GDI ничего не скажу, не пробовал.

Может есть другие пути решения задачи? Прога своя или чужая?
...
Рейтинг: 0 / 0
06.02.2013, 16:28
    #38140344
askkas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PrintScreen + Распознавание текста
Dima T,
1) В примере как сделать скриншот - очень низкое разрешение экрана получается, намного ниже, чем есть в действительности.
2) Также неизвестно как вырезать некоторую область экрана.
...
Рейтинг: 0 / 0
06.02.2013, 17:04
    #38140447
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PrintScreen + Распознавание текста
askkasДобрый день. Существует задача:
1) Сделать скриншот окна приложения.
2) Выбрать из скриншота некоторую область (x1,y1,x2,y2)
3) Для лучшего распознавания Инвертировать цвета области (Белый текст на черном фоне)
4) Распознать текст в рисунке и скопировать его в буфер обмена для последующей работы.
Что-то эта задачка больно напоминает нечто шпионское... Приложение небось не фоксовое ?
...
Рейтинг: 0 / 0
06.02.2013, 17:07
    #38140457
askkas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PrintScreen + Распознавание текста
Jonny540,
Приложение на фоксе. Просто есть скомпилированное ПО, и для автоматизации моя программа должна знать на какую кнопку ей нажать. А это, как известно, можно сделать только в зависимости от того, какие кнопки сейчас видны на экране.
...
Рейтинг: 0 / 0
06.02.2013, 17:16
    #38140477
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PrintScreen + Распознавание текста
1. Поизучал внимательнее. В том примере только как сохранить из буфера обмена. Тут все вместе. Попробовал. У меня разрешение совпало с разрешением монитора.
2. Как вариант закрасить ненужное белым. Для распознавания подойдет. Поизучай GDI. Закрасить там точно есть.
...
Рейтинг: 0 / 0
06.02.2013, 17:22
    #38140494
askkas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PrintScreen + Распознавание текста
Dima T,
Во вложении программный скриншот и рядом - скриншот Windows.
Разница в качестве картинки налицо. Ридер ее может уже не распознать
...
Рейтинг: 0 / 0
06.02.2013, 17:42
    #38140540
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PrintScreen + Распознавание текста
Открой в паинте. Виндовый просмотрщик ужимает картинку. Отсюда искажения.
...
Рейтинг: 0 / 0
06.02.2013, 18:33
    #38140626
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PrintScreen + Распознавание текста
askkasJonny540,
Приложение на фоксе. Просто есть скомпилированное ПО, и для автоматизации моя программа должна знать на какую кнопку ей нажать. А это, как известно, можно сделать только в зависимости от того, какие кнопки сейчас видны на экране.
Подобные задачи проще решаются. Админы любят всякие проги кнопко-нажиматели типа такой . Создается на встроенном языке скрипт примерно такой: "запустить прогу, дождаться такого-то окошка, ввести тот-то и/или нажать такую-то кнопку."

В принципе можно самому написать, только не на фоксе. Надо использовать функцию EnumWindows() а фокс не умеет адреса функций передавать как параметр.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / PrintScreen + Распознавание текста / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]