LINUX.ORG.RU

Оцифровка черно-белых схем/изображений без сканера

 , , , ,


1

2

Надо оцифровать с книг и отдельных листов несколько черно-белых схем и изображений примерно такого типа.

https://pristor.ru/wp-content/uploads/2019/07/%D0%A1%D1%82%D0%BE%D0%BF%D0%BA%D0%B0-%D0%BA%D0%BD%D0%B8%D0%B3-%D1%87%D0%B5%D1%80%D0%BD%D0%BE-%D0%B1%D0%B5%D0%BB%D1%8B%D0%B5-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B8-15.jpg

Вобщем, схематичные наброски и несложные рисунки.

Пока на ум приходит сфоткать само изображение. Но хочется получить не просто фотку, а нормальный отдельный цифровой рисунок, который можно будет потом отделить от всего лишнего (например, каких-либо символов/подписей), или например избавить от пожелтевшего фона старой книги, т.е. получить отдельную сущность в виде рисунка.

Недавно читал про возможности современных нейросетей, которые по простому текстовому описанию могут создавать реалистичные изображения… Вы только зацените.

https://habr.com/ru/company/ruvds/blog/678876/

И подумал, а нет ли простого готового решения, как «вытащить» черно-белое изображение с цифровой фотографии, чтобы можно было сохранить его, скажем, в формате png (с прозрачностью и всеми делами)?

Или, возможно, есть какое-то решение попроще, без этих всяких нейросетей? Может быть какой-нибудь редактор в Linux так может? Чтобы открыл в редакторе фотку с черно-белым изображением, а он «подхватил» сам рисунок, и ты его уже копипастишь в новый png-файл с прозрачностью. Например, чтобы достроить схему и уже пересохранить в виде нового изображения.


Камеры в современных телефонах способны на многое. Можно задействовать специальные режимы для ч/б съёмки документов, а потом с меньшими затратами обработать снимки до лучшей кондиции на машине.

carasin ★★★★★
()

Делается запросто в GIMP’е. Пошаговая инструкция для чистки такого lineart’а:

  1. Открыть фотографию.
  2. Обрезать до нужного с полями примерно 10% (выделить нужное прямоугольником, затем Image > Crop to selection).
  3. Если рисунок по идее должен быть черно-белым, то Colors > Components > Extract Component, и выбрать из красного, зеленого и синего каналов наиболее контрастный.
  4. Ctrl+L для перехода в панель со слоями.
  5. Выбрать единственный существующий слой, щелкнуть по нему правой кнопкой, сделать дубликат.
  6. Щелкнуть по глазу слева от оригинального слоя, чтобы его не испортить. Глаз около дубликата должен остаться. Дубликат в списке должен быть выше оригинала.
  7. Filters > Blur > Gaussian Blur… сделать с радиусом примерно 50 (зависит от разрешения камеры), чтобы детали рисунка полностью заблюрились, а неравномерное освещение - нет.
  8. Наверху панели со слоями выделить дубликатный слой, выставить режим Divide вместо Normal.
  9. Свести изображение: Image > Flatten Image
  10. Colors > Levels и подобрать сверху уровни обрезки белого и черного по вкусу - белый опустить, чтобы убрать пыль, черный поднять, чтобы повысить контраст.
  11. Layer > Transparency > Add alpha channel (если пункт недоступен, то альфа-канал уже есть, и этот шаг не нужен)
  12. Colors > Color to Alpha > превратить белый цвет в прозрачный. Если я не ошибаюсь, то это настройка по умолчанию, т.е. ничего в этом диалоге менять не нужно.
  13. Убрать лишние поля: Image > Crop to content
  14. Экспортировать как *.png.

При необходимости векторизации, пересохраняем как *.pgm и натравливаем на получившийся файл potrace или autotrace.

AEP ★★★★★
()
Последнее исправление: AEP (всего исправлений: 2)

На телефоне есть софт который умеет убирать искажения и автоматическую обрезку. Различные печатные документы им фоткаю, результат приемлемый.

einhander ★★★★★
()
Ответ на: комментарий от hargard

Не силен в графике. Inkscape умеет обводить кривыми на основе растрового изображения. Останется только экспортировать в png. Или оставить по-красоте в svg.

Так и не понял, как и что надо делать в Inkscape.

Я себе это так представляю.

  1. Открыть редактор (любой, например, Inkscape).

  2. В нем открыть нужное изображение (например, формата png).

  3. Создать прозрачный слой, который будет над изображением.

  4. Попытаться перерисовать вручную схему/рисунок уже на прозрачном слое, рисуя поверх оригинального изображения… Да, многие изображения оказались не лучшего качества. Каким то образом мне надо преобразовать их в цифровой вид, улучшив качество (видимо, вручную) и сохранив более-менее пропорции оригинала.

Попробовал сделать это в Inkscape, но затормозил на самом простом - не смог найти обычный карандаш, или чем собственно рисовать… Вижу разные виды линий, но мне нужен именно карандаш, чтобы произвольные штуки рисовать.

Inkscape решил пробовать потому, что потом можно будет сохранить в svg, а он масштабируемый, что удобно.

Вобщем, пока не пойму как в Inkscape элементарно карандашом повторить (аккуратно обвести поверх) все детали оригинального изображения. Ничего непонятно.

bairos
() автор топика
Ответ на: комментарий от hargard

Ничего не понял. Зачем мне какие-то кривые? У меня есть старые схемы и просто изображения в плохом качестве. Я что, кривыми должен дорисовывать? Этож костыли. Мне кажется, Inkscape это не тот инструмент, который здесь нужен.

bairos
() автор топика