![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
Есть картинка (приложил к сообщению).
Движок распознавания (tesseract) иногда очень плохо распознает цифру 1, а также точку с запятой, я имею ввиду, что вообще не распознаёт. Ну и другие символы не всегда правильно. Может из 8 сделать 3 или 5. Хотя другие картинки почти всегда правильно. Они чётче. Я увеличиваю картинку в 3-4 раза и подсовываю движку распознавания. Как бы мне сделать символы более чёткими, темнее? Спасибо. Присоединённый файл ( Кол-во скачиваний: 31 )
260d8f0b5d24bb7fa9e6f26a5e881365.jpg 1,95 Kb |
|||
|
||||
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: нет Всего: 6 |
Писал когда то программу, которая делает слишком светлые пиксели белыми, а слишком тёмные - чёрными, получая таким образом чёрно-белое изображение. Порог светлый/тёмный можно было выставлять вручную. С помощью этой программы делал более чёткими и чистыми сканы рисунков, нарисованных карандашом на бумаге. Однажды полностью восстановил чеки, которые выцвели до нечитабельного состояния.
Могу завтра (сейчас некогда) поискать исходники. Но сразу предупрежу они сделаны на компонентах UnDelphiX. Хотя думаю под обычный канвас алгоритм переделать легко. --------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
||||
|
||||
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 13 Всего: 63 |
Увеличьте контрастность
-------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Чтобы увеличить яркость, по хорошему цвета из RGB нужно перевести в HSV схему http://ru.wikipedia.org/wiki/HSV_(%D1%86%D...B5%D0%BB%D1%8C)
В ней последний параметр яркость. Добавляем яркости и обратно в RGB конвертим. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Akella, попробуй еще фильтр фотошопа unsharp mask . Он вроде как улучшается края как раз.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
А если нет на ПК фотошопа?
Illusion Dolphin, пасиб, попробую. Получает, что JPG или PNG нужно конвертнуть в BMP, увеличить контрастность, а затем обратно в PNG? Качество не потеряется? Добавлено через 4 минуты и 55 секунд
ещё вопрос, что такое Value и Local, и как их применять? |
|||
|
||||
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: нет Всего: 6 |
Какое предвзятое мнение, как о новичках на форуме, так и о незнакомых компонентах. Там через UnDelphiX только вывод на экран. Обработка пикселей через Canvas.Pixels[x, y], выделение rgb составляющих пикселя и их анализ. --------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Жпег плохо использовать для текста, потому что как раз жпег больше других форматов портит края текста, контуров и вообще любых чертежей. PNG формат без потерь, так что PNG<->BMP не приведет к ухудшению качества. Этот фильтр есть в Гимпе. Программно это реализуется с помощью гаусова размытия + дополнительные арифметические операции. Вот кстати описание этого фильтра и описание как его реализовать http://docs.gimp.org/en/plug-in-unsharp-mask.html . Фильтры гауса несложно найти в интернете готовую реализацию, а вычитать и складывать цвета пикселов, думаю ты осилишь Добавлено через 1 минуту и 55 секунд Да чо уж там в интернетах, у нас на форуме есть реализация gaussian blur http://forum.vingrad.ru/faq/topic-157073.html -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: нет Всего: 6 |
Да, получилось немного не так, как думал.
Файл после обработки прикреплён к ответу. Если нужны исходники, прикреплю. Без UnDelphiX. Прога работает с jpg. Т.е. открывает их, но потом загружает файл в TImage и с ним уже работает. Сохраняет тоже в Jpg. Это сообщение отредактировал(а) Агрох - 4.12.2013, 11:45 Присоединённый файл ( Кол-во скачиваний: 13 )
1.jpg 2,94 Kb--------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
ок, понял Добавлено через 56 секунд
при чём здесь мнение, если я просто не хочу использовать сторонние компоненты только из-за 1-2 процедур или функций, не вижу смысла пока что Добавлено через 2 минуты и 10 секунд таскать с собой гимп и фильтр? зачем, если Illusion Dolphin дал готовый вариант вариант этот работает, текст становится темнее, распознавание улучшилось, это факт Добавлено через 2 минуты и 50 секунд у меня так же получается |
|||
|
||||
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: нет Всего: 6 |
Извини. Не понял. Просто люди как слышат про эти компоненты обычно сразу начинают нос воротить. Нашёл исходники и адаптировал их под TImage, без UNDelphiX. Хотя там и так через Canvas всё делалось. Пример результата работы можно посмотреть выше. Могу выложить исходники. --------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Ну я вообще имел ввиду, потестировать на предмет улучшиться ли распознавание после unsharp mask. Я в свое время как раз этот фильтр использовал для улучшения качества краев текста, но сейчас глянул на твой текст и думаю, что пожалуй мелковат он для любых фильтров. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
цифры распознаются в принципе нормально, увеличиваю картинку в три раза и норма, но такие мелочи, как точка и запятая, а также точка запятой.... не очень,
примерно в 30% случаев не распознается |
|||
|
||||
| PointerToNil |
|
||||
![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 17.6.2013 Репутация: нет Всего: 6 |
если нужно сделать темнее:
(подразумевалась под "c" и "new_c") если контрастнее - немного иначе:
Это сообщение отредактировал(а) PointerToNil - 5.12.2013, 17:48 |
||||
|
|||||
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: нет Всего: 6 |
Попробуй мой вариант. Проект прикреплён.
Там на форме два трекбара. Первый отвечает за степень очистки от слишком светлых пикселей, второй за очернение достаточно тёмных. Соответственно при нулях на обоих ничего не изменится, при 255 на отбеливании, почти все пиксели станут белыми (r=255, g=255, b=255), при 255 на очернении все пиксели, кроме белых, будут чёрными (r=0, g=0, b=0). Есть чекбокс "Динамическое обновление". Если он выбран, то при перемещении бегунков на трекбарах результирующее изображение сразу будет изменяться (только для небольших изображений). Есть 4 Image, слева оригинал и увеличенный в 5 раз оригинал, справа - обработанное изображение и увеличенное в 5 раз обработанное изображение. При коэффициентах 64, 191 изображения в bmp состоит только из чёрных и белых пикселей. В jpg немного "мусора" появляется. Можно поиграть с коэффициентами, может что получится. Присоединённый файл ( Кол-во скачиваний: 5 )
Очистка_изображения.zip 83,68 Kb--------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 13 Всего: 63 |
(facepalm) Чудеса оптимизации -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: нет Всего: 6 |
Illusion Dolphin, это урезанная версия под конкретную задачу. Уверяю вас, в полной версии всё то, что вам кажется не оптимизированным, использовалось.
Главный вопрос: работает ли? Это сообщение отредактировал(а) Агрох - 9.12.2013, 16:57 --------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
Я не пробовал, ибо уже отдал программу пользователю с кодом, который предоставил Illusion Dolphin. Пока всё хорошо.
|
|||
|
||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Jpeg не бывает черно-белым. Или 256 оттенков серого или тру колор. Пожимать чертежи жпегом худшее из того что можно придумать. Во-первых сжатие получается хуже чем png, а второе это размытие линий, которое ни разу не облегчает бинаризацию и выделение контуров. Картинка под увеличением демонстрирует лучше всяких слов. ![]()
Кто спорит, что работает. Для картинки 100х20 жить будет. Дело в том, что производительность сего кода примерно раз 500 хуже того что можно было сделать. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: нет Всего: 6 |
Именно поэтому я написал не чёрно-белым, а состоящим из пикселей чёрного и белого цвета, при этом указал что это только для bmp. В самой программе работа идёт через Image.Canvas.Pixels[x,y], т.е. обработки именно изображения jpg нету. Просто можно открыть файл jpg, прога его преобразует в bitmap, обрабатывает, а полученный bitmap обратно сохраняет в jpg. Качество открытия/сохранения jpg на совести библиотеки JPEG. --------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: нет Всего: 6 |
Есть задача и есть решение. В условии задачи, той которую я ставил перед собой когда это делал, не было добиться максимальной производительности. А её можно добиться разве что используя для решения возможности видеокарты, DirectX или OpenGL. На всякий случай ещё уточню, что в полной версии работа производилась не с двумя цветами, чёрным и белым (rgb (0,0,0) и (255,255,255)) а со всеми цветами диапазона. Настройка осуществлялась не двумя TrackBara-ами, а восемью, плюс было две опции в RadioGroup. Это на тему лишних переменных в коде и ненужных преобразований. В то время я слегка увлёкся графикой, в том числе и сам рисовал контурные рисунки карандашом на бумаге. В первую очередь меня интересовала возможность очистки сканов этих самых рисунков от грязи, которая непременно возникала в процессе рисования (многократное стирание неудавшихся линий и рисование по новой) и повышение чёткости линий рисунков, для последующей работы с ними в программах обработки графики. Это было лет 5 назад, когда я ещё толком даже ООП не освоил, и программированием занимался всего около 2-х лет. Естественно код не оптимизирован. Сейчас же я чисто косметические изменения в него внёс. Повышение контрастности - не выход, т.к. повышается контрастность не только самого рисунка но и артефактов. Вручную удалять всё это было лень. Высокая производительность не нужна была, т.к. максимум мне надо было обработать 1-2 рисунка в день. Главное, чтобы работало. И оно работало. --------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |