Библиотека C++ для распознавания изображений: изображения, содержащие слова для строкового представления

Вы можете использовать объединение с подзапросом, сгруппированным по domestic_helper_id с агрегированной функцией, например: max()

SELECT d.* 
FROM domestic_helper_idcard d
inner join (
  select domestic_helper_id, max(id) max_id
  from domestic_helper_idcard
  where  is_deleted = 0
  group by  domestic_helper_id 

) t on t.domestic_helper_id = d.domestic_helper_id and t.max_id  = d.id

order by d.card_expiration_date desc

и в соответствии с предложением Йенса после уточнения с использованием max card_expiration_date

SELECT d.* 
FROM domestic_helper_idcard d
inner join (
  select domestic_helper_id, max(card_expiration_date) max_date
  from domestic_helper_idcard
  where  is_deleted = 0
  group by  domestic_helper_id 

) t on t.domestic_helper_id = d.domestic_helper_id and t.max_date  = d.max_date

order by d.card_expiration_date desc
6
задан Zombies 20 January 2009 в 21:52
поделиться

4 ответа

Я изучал это много в последнее время. Вашим лучшим является просто Tesseract. Если Вам нужен анализ топологии сверху OCR, чем идут с Ocropus (который в свою очередь использует Tesseract, чтобы сделать OCR). Анализ топологии относится к способности обнаружить положение текста на изображении и сделать вещи как сегментация строки, сегментация блока, и т.д.

Я нашел некоторые действительно хорошие советы посредством экспериментирования с Tesseract, которые стоит совместно использовать. В основном я должен был сделать большую предварительную обработку для изображения.

  1. Увеличьте/Уменьшите свое входное изображение к 300 точкам на дюйм.
  2. Удалите цвет из изображения. Шкала полутонов хороша. Я на самом деле использовал порог размытия и сделал мой вход черным и белым.
  3. Отключите ненужный спам из своего изображения. Для всех трех выше я использовал netbpm (ряд инструментов обработки изображения для Unix) для получения для указания, где я получал в значительной степени 100-процентную точность для того, в чем я нуждался.

Если Вы имеете очень специализированный шрифт и идете с одним только tesseract, необходимо "Обучить" систему - в основном необходимо подать набор обучающих данных. Это хорошо документируется на сайте tesseract-ocr. Вы по существу создаете новый "язык" для своего шрифта и передаете его в с-l параметром.

Другой учебный механизм, который я нашел, был с Ocropus с помощью nueral сеть (bpnet) обучение. Это требует, чтобы много входных данных создало хорошую статистическую модель.

С точки зрения вызова Tesseract/Ocropus оба C++. Это не будет столь же просто как ReadLines (Изображение), но существует API, который можно проверить. Можно также вызвать через командную строку.

7
ответ дан 8 December 2019 в 14:48
поделиться

В то время как я не могу рекомендовать один, в частности, термином, который Вы ищете, является OCR (Оптическое распознавание символов).

5
ответ дан 8 December 2019 в 14:48
поделиться

Я думаю, что Вы хотите, Догадка. Используемый, чтобы быть libgocr проектом. Я не использовал его в течение нескольких лет, но это раньше было очень надежно при установке ключа.

1
ответ дан 8 December 2019 в 14:48
поделиться

Существует tesseract-ocr, которое является профессиональной библиотекой, чтобы сделать это.

Оттуда веб-сайт

Механизм OCR Tesseract был одним из лучших 3 механизмов в тесте Точности UNLV 1995 года. Между 1995 и 2006 это имело мало работы, сделанной на нем, но это - вероятно, один из самых точных доступных механизмов OCR с открытым исходным кодом

3
ответ дан 8 December 2019 в 14:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: