5 / 5 / 1
Регистрация: 09.02.2013
Сообщений: 21
1

Проблема с OCR Puma.Net (читает текст с одной картинки, но не читает с другой)

03.11.2014, 00:07. Показов 3555. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть проект с оцр Puma.Net и есть 2 картинки 1ая и 2ая, только вот с первой картинки программа читает текст, а со второй нет. При чтении 2 картинки выдает halted with code 7733267. Как исправить, или может быть нужен другой способ чтения?

Вот код.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Puma;
using Puma.Net;
 
namespace FOCR
{
    public partial class Form1 : Form
    {
 
        
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            openFileDialog1.Multiselect = false;
            openFileDialog1.ShowDialog();
        }
        public string textIMG(string PathFile)
        {
            string text = "";
            using(Bitmap bmp = new Bitmap(PathFile))
            {
                PumaPage pp = new PumaPage(bmp);
                using(pp)
                {
                    pp.FileFormat = PumaFileFormat.TxtAscii;
                    pp.AutoRotateImage = true;
                    pp.EnableSpeller = false;
                    pp.RecognizeTables = true;
                    pp.FontSettings.DetectItalic = true;
                    pp.Language = PumaLanguage.Russian;
                    try
                    {
                        text = pp.RecognizeToString();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
 
            return text;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = textIMG(openFileDialog1.SafeFileName);
        }
    }
}
Добавлено через 2 часа 39 минут
Не могу понять почему не читает вторую картинку, пробыва скринить в разних форматах- результат тотже. Для создания скринов использую свой код. Сохраняю bmp.save("original.format", imageformat.format) может проблема в этом , может разсширить колово параметров?

Добавлено через 3 часа 40 минут
Может быть её обесцветить. Почему текст привет— читаем, а принять— нет?
(удалено) (удалено)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2014, 00:07
Ответы с готовыми решениями:

Puma.Net, как использовать (распознать текст с картинки)
Нужно распознать текст с картинки. Нашел такую штуку, как Puma.Net, но не пойме как ей...

[Puma.Net] Отсканировать текст на картинке
Нужно отсканировать текст на картинке, поидее, все делаю правильно, но: Recognition engine halted...

Составить программу, которая читает построчно текст другой программы (ввести с клавиатуры) на языке C (10 строк)
строки написать в паскале программу которая читает построчно текст другой программы (ввести с...

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

8
2721 / 2031 / 375
Регистрация: 22.07.2011
Сообщений: 7,691
03.11.2014, 01:09 2
Верно , нужно убрать все шумы , сделать фон белым.
1
0 / 0 / 0
Регистрация: 24.07.2013
Сообщений: 46
22.12.2014, 18:51 3
Подскажите. Что делаю не так?
При попытке запустить Puma.NET выскакивает следующая ошибка:
"Невозможно загрузить файл PumaPage.cs из Z:\Projects\Diploma\Puma.Net\Puma.Net. Проверьте права доступа и существование этого файла."
0
2 / 2 / 2
Регистрация: 25.11.2015
Сообщений: 37
14.02.2016, 11:55 4
Ребят, получаю такую же ошибку, как и автора поста.

НО bmp сделал сам и на белом фоне черными буквами. + На русском языке иногда срабатывает, а английский валится весь (язык конечно меняю с русского на англ PumaLanguage.English; и PumaLanguage.Russian
0
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 3
14.02.2016, 13:58 5
Как альтернативный вариант, могу предложить мощнейшее решение на OpenCV с исходниками и готовой демкой

http://www.codeproject.com/Art... ition-in-C
0
2 / 2 / 2
Регистрация: 25.11.2015
Сообщений: 37
14.02.2016, 16:44 6
Цитата Сообщение от sswuo Посмотреть сообщение
мощнейшее решение на OpenCV
Микроскопом гвозди забивать... Мне всего что надо то? У меня текст всегда одинаковый (размер, цвет, даже местоположение). Задний фон разный (монотонный темный). Мне на динамическом фоне надо сравнить несколько строчек со значением из переменной и, если совпадает, получить координаты, что бы щелкнуть мышью...
За сегодня перебрал 3 библиотеки (Пума, тесснет2, и еще какую то. Из них только пума заработала хоть как то, да и то...). Инфы по данной ошибке в инете я не нашел (убил часа 3 + не только на русских серверах)

По поводу ссылки, что вы дали... модуль OCR (если скачивать и запускать отдельно не работает с той же простой картинкой - определяет H E O а буквы L никак, и то это после 5 минут настройки как то начал 3 буквы понимать). А по поводу изображения с камеры.... я вообще лучше промолчу (с вэбкой особо выпендриваться нечем)
0
Эксперт .NET
11475 / 7816 / 1192
Регистрация: 21.01.2016
Сообщений: 29,320
14.02.2016, 17:57 7
Глупый, вы можете здорово подсобить OCR-ке, если перед передачей ей изображения это самое изображение почистите. В вашем случае это довольно просто (ну, как мне кажется) - у вас цвет текста заранее известен. Рекомендую перед распознаванием пройтись по изображению и "залить" все пиксели, цвет которых отличается от цвета текста, каким-нибудь фоновым цветом. Это может здорово помочь вашему делу.

Как вариант, можно выполнить "бинаризацию" - перевести изображение в чёрно-белое, это тоже, как правило, даёт хороший эффект. Но катинка должна быть именно чёрно-белой (только два цвета), а не монохромной (оттенки серого).

Добавлено через 2 минуты
Вообще, к каждой OCR-библиотеки идёт документация, где обязательно должно обозначаться в каких ситуация библиотека справляется лучше, а в каких хуже. Соответственно, вам нужно будет изображения подгонять к "лучшему" варианту.
0
2 / 2 / 2
Регистрация: 25.11.2015
Сообщений: 37
15.02.2016, 11:16 8
Цитата Сообщение от Usaga Посмотреть сообщение
Рекомендую перед распознаванием пройтись по изображению и "залить" все пиксели, цвет которых отличается от цвета текста, каким-нибудь фоновым цветом.
Цитата Сообщение от Глупый Посмотреть сообщение
Ребят, получаю такую же ошибку, как и автора поста.
НО bmp сделал сам и на белом фоне черными буквами.
Шрифт Arial. Вся суть как раз в том, что я не могу скормить OCR даже простую картинку, а обработка может убить какие то детали. При этом описание ошибки и как её можно вылечить я так и не нашёл.

И я, как бы, потратив достаточно, на мой взгляд, времени, плюнул на такую идею (да кого я обманываю, просто не получилось найти хоть что то рабочее, поэтому забил). И отправил свои глаза в сторону нейронных сетей. В моем случае - более верный вариант - мне даже не придется обрабатывать картинку, если правильно обучить сеть.

Сейчас вот смотрю варианты написания своей собственной сети (так как взять готовый результат не вариант - хочу самостоятельно разобраться).
0
1346 / 1272 / 218
Регистрация: 19.02.2010
Сообщений: 3,653
17.02.2016, 21:59 9
Цитата Сообщение от Глупый Посмотреть сообщение
И отправил свои глаза в сторону нейронных сетей. В моем случае - более верный вариант - мне даже не придется обрабатывать картинку, если правильно обучить сеть.
Сейчас вот смотрю варианты написания своей собственной сети (так как взять готовый результат не вариант - хочу самостоятельно разобраться).
Это да, результаты для нейронок заявляются фантастические - они кушают всё, не требуя никаких обработок картинки.
На приложенной картинке - пример правильно и неправильно распознанных текстов из свежей, уже этого, 2016г, статьи китайцев (они там распознали обведённую красным картинку со словом computer без обращения к явному словарю при распознавании - просто при обучении построив-запомнив длинные цепочки переходов вероятностей от буквы к букве, но всё равно - две буквы невидимы, от M половинка видна - и распознали, фантастика прямо).
Но без очень глубоких знаний - и не поймёте недоговорённых или скрытых подробностей, и не воспроизведёте результат. Поэтому берите лучше что-то готовое Пусть и нейросеть - но готовую (или готовую либу).
Миниатюры
Проблема с OCR Puma.Net (читает текст с одной картинки, но не читает с другой)  
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2016, 21:59
Помогаю со студенческими работами здесь

Не могу понять почему Яндекс не читает мой Sitemap? а google читает.
Захожу в яндекс мастер выбираю sitemap а он мне пишет ошибка в файле sitemap невалидный sitemap Но...

USBasp неправильно читает Flash, но правильно читает EEprom
Ребята выручайте, нужен мозговой штурм... Пару лет назад собрал USBasp, до недавнего времени...

Дисковод читает аудиофайлы, а DVD-диски не читает
Всем привет! Дисковод читает аудиофайлы а DVD-диски не читает! Может какой драйвер надо!!!!...

Дисковод в Ubuntu не читает DVD, но однако читает CD
Доброго всем времени суток! Решили перейти на Ubuntu и столкнулись с проблемой: дисковод не видит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru