LINUX.ORG.RU
ФорумTalks

[специалистам] Фильтрация и обработка сканированных изображений

 


0

0

Задался вопросом: как обрабатывать сканированные чертежи? На получившихся сканах слишком много шума (грязная, выцветшая бумага), осыпавшаяся краска, разрывы. Можно конечно каждый скан по 2 часа править в гимпе, но что-то мне подсказывает, что должен быть способ лучше.

Вот имитация самых надоедливых проблем:

http://img76.imageshack.us/img76/7643/filter4.png

Тут 2 проблемы:

1. слишком много шума/пятен (мелкие скопления пикселей, не образующих больших фигур), которые бы хотелось устранить, но при этом не размывать крупные фигуры (как в примере)

2. прямые линии сканируются в виде ломаных, а хотелось бы получить прямые. Пример справа - это опять размытие и отрезание краев. Получилось далеко не идеально.

Вопрос: может есть какие-то фильтры/плагины к фотогимпошопу, утили для выравнивания линий, уже проверенные методики для таких работ? Можно даже решения под Linux.

Ответ на: комментарий от EmStudio

ОК, просто хотел глянуть, что они из себя представляют. Может, их векторизовать проще? При этом очень много мелких дефектов исчезает.

massimus ★★★
()

Если они уже после простого порогового фильтра сканера (как на рисунке) то все плохо.

Если сохранился grayscale то можно скормить аналогу фильтра "ксерокопия" в фотошопе. Я им делал книги в djvu - справляется на ура.

gkrellm
()
Ответ на: комментарий от anonymous_incognito

> Ищи по ключевым словам depeckle. Что-то в imagemagick есть.

convert -h

-despeckle reduce the speckles within an image

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

> deskew

Спасибо, но до этого пока не дошел, мне сначала бы с мусором разобраться.

> улучшение изображений и т.п.

В гугле такое можно найти по этому запросу...

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

> Может, их векторизовать проще?

Может, а чем? Я пробовал в Inkscape засовывать, результат далек от идеала... Хотя выглядит конечно лучше..

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

> Если сохранился grayscale то можно скормить аналогу фильтра "ксерокопия" в фотошопе. Я им делал книги в djvu - справляется на ура.

В принципе, я хоть в цвете могу сканировать, только пользы это не даст. А вот за ссылочку на чудо-плагин буду благодарен

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

>слишком много шума/пятен

Есть утилита GREYCstoration, которая существует и как плагин для GIMP http://cimg.sourceforge.net/greycstoration/

>утили для выравнивания линий

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

Например, для Ws http://www.reg-soft.ru/program/303_RasterVect_14.6.htm

P.S. Но лучше правильно настроить сканер :)

quickquest ★★★★★
()

Если сканирование только предстоит, то наверное лучше сканировать в 256-greyscale или даже в цвете, а затем обрабатывать на компьютере.

Когда сканирую сам, то обычно делаю скан 600-dpi RGB.

Затем перевод в 256 greyscale -> редактирование уровней -> bitmap

sign
()
Ответ на: комментарий от sign

> Когда сканирую сам, то обычно делаю скан 600-dpi RGB. Затем перевод в 256 greyscale -> редактирование уровней -> bitmap

Это слишком долго и утомительно. Задача: получить разбираемые чертежи в 1-битовом цвете, при этом не цацкаясь с каждой картинкой по 2 часа подгоняя уровни, играясь с масками или блюром. Должно же быть что-то мощное. Вот завтра все протестирую и расскажу.

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

>>>Я пробовал в Inkscape засовывать, результат далек от идеала...

Ну я грязные картинки именно в Inkscape и улучшаю. Надо только один раз подобрать параметры, а потом однотипные изображения уже легко делаются, при желании можно их и пакетно через potrace гнать. Только вот из черно-белого скана я бы не советовал, лучше в цвете и со слегка избыточным разрешением. Просто ни одному алгоритму не под силу отличить маленький фрагмент полезного изображения от маленького фрагмента мусора, если они оба одного цвета/насыщенности/etc. В первую очередь в инкскейповской морде к potrace надо подобрать значения параметров на второй вкладке (убрать пятна, сгладить углы, оптимизировать контуры). Плюс имеет смысл на первой вкладке отметить внизу пункты "сгладить", "сложить стопкой", "убрать фон" и выбрать множественное сканирование в цвете на 4—10 проходов. Тогда весь фоновый мусор из конечного изображения спокойно удаляется выдергиванием нескольких лишних слоев (или вообще к выбору из нескольких слоев одного, наиболее похожего на правду, с убиением остальных). К тому же в векторном формате при необходимости легко будет подредактировать отдельные корявости. Тут главные помощники — инструмент выделения узлов + кнопка "сделать выделенные узлы острыми" + кнопка "сделать выделенные сегменты прямыми" + "Контуры > Упростить". Впрочем, на несильно замусоренных картинках, или если не стоит задача "сделать за***сь", может хватить и гимповской "нерезкой маски", там тоже надо только с параметрами аккуратно поиграть.

massimus ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.