К вопросу о правке сканов.

Основной форум пользователей GPS (Global Positioning System)
Правила форума
Для предотврашения спама первые сообщения вновь зарегистрированных пользователей проходят ручную премодерацию.
Bushman
Сообщения: 2841
Зарегистрирован: 15 июл 2002, 16:44

К вопросу о правке сканов.

Сообщение Bushman » 25 фев 2005, 13:36

Попался мне как-то фильтр для Photoshop под названием CurveMeister http://www.curvemeister.com/downloads/cmdemo/index.html . Оказался довольно полезен. Плюс в том, что при редактировании кривых (к большому сожалению - только гладких кривых) позволяет видеть кривую на фоне гистограммы канала. Это позволяет довольно точно локализовать участок, на котором нужно создать на кривой горизонтальную ступеньку (над пиком в гистограме, так, чтобы края приходились на начала подъемов вокруг пика). Если применить такое преобразование в каждом канале отдельно, то значительно уменьшается (а если бы кривая могла быть ломаной, то его можно было бы свести к нулю) разброс значений цветов сходных по цвету точек. Наложение trial overlay легко лечится, если открыть установленный файл фильтра .8bf любым редактором ресурсов, среди bitmap resource найти demooverlay, и отредактировать его так, чтобы он стал просто белым квадратом без надписей.

Anonym
Сообщения: 15897
Зарегистрирован: 06 фев 2017, 18:49

Re: К вопросу о правке сканов.

Сообщение Anonym » 25 фев 2005, 18:25

заумный ты мужик, Dushman.

Уважаю!

P.S.
но нихера не понятно


Olexa
Сообщения: 5738
Зарегистрирован: 31 авг 2001, 13:07

Re: К вопросу о правке сканов.

Сообщение Olexa » 28 фев 2005, 12:34

А можешь объяснить в популярной форме, как его грамотно использовать для обработки сканированных растров?


Bushman
Сообщения: 2841
Зарегистрирован: 15 июл 2002, 16:44

Re: К вопросу о правке сканов.

Сообщение Bushman » 28 фев 2005, 13:30

Могу в общих чертах.
Дано: сканированный растр, не являющийся фотографией, спутниковым снимком или чем-то еще, где плавные цветовые переходы присутствуют "по праву". Дело мы имеем с картой, планом, чертежом, рисунком.

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

Что мы должны сделать: привести все точки сходного цвета к некоему одному цвету. В комп. графике это называется "posterization" (фильтр posterize есть практически в любом граф. редакторе, но он нас по некоторым причинам не устраивает - слишком "тупой", хотя на хороших оригиналах, не жатых jpeg'ом, может давать нормальный результат и сам по себе).

А теперь лезем в тонкости. Возьмем какую-нибудь общедоступную карту, сохрененную в JPEG и без обработки. Нужно вытянуть Levels, чтобы самые темные места (чуть отличающиеся от черного) стали черными, а самые светлые - стали белыми. Контролировать на глаз, чтобы не затронуть то, что черным и белым быть не должно. Можно приступать к постеризации.

Запускаем фильтр, и смотрим на окошко любого канала, например - зеленого (это при условии, что на карте вообще есть леса - иначе нам и править тут нечего, т.к. зеленого цвета нет). Сначала изучаем гистограмму (график, на котором по верт. оси - кол-во точек, по гориз. - насыщенность цвета). На графике обязательно будет заметный пик, соответствующий основному целеному цвету, который есть на карте. В идеале (если посмотреть гистограмму любой карты, сохраненной из векторной, где по определению нет отклонений цветов) пик должен быть тонкий и резкий. Но мы видим, что по обеим сторонам пика - пологие склоны. Вот от них мы должны избавиться, приведя отличающиеся точки к одному цвету. Для этого мы начинаем править цветовую кривую.
1) Чтобы получить то, что нужно, на кривой нужно сформировать горизонтальную ступеньку. Ее границы по горизонтальной оси будут соответствовать точкам, где начинаются склоны вокруг пика. Ставим узлы кривой на этих самых местах, не меняя форму кривой.
2) высота ступеньки (расстояние от нее до нижней горизонтальной оси) выбирается по тому, где находится середина участка, ранее ограниченного двумя узлами. Левый узел нужно поднять до этого уровня, а правый - опустить. В результате получится некая кривулина. При этом стоит визуально контролировать происходящее с картинкой, потому что, скажем, точки светло-зеленого оттенка могут относиться как к истинно зеленым областям, так и к истинно голубым (искаженный цвет воды). Так вот если посторонние цветовые области окажутся затронуты, достаточто сузить границы будущей ступеньки.
3) Теперь нужно добавить между крайними узлами еще узлов, и подвинуть их так, чтобы участок кривой стал почти горизонтальным. Участки кривой за пределами горизонтальной ступеньки нас не особо волнуют.

Повторив эти операции для каждого цветового канала из трех, мы получим гистограмму, выглядящую, как несколько острых пиков. А на рисунке области будут залиты гораздо более равномерным цветом (хотя оттенок, яркость и насыщенность цветов все еще могут отличаться от необходимых). Далее можно уже гораздо проще поправить оттенки, пользуясь настройками Hue-Saturation-Lightness, и в результате получить значительно лучше выглядящее изображение.


nk_
Сообщения: 120
Зарегистрирован: 15 мар 2004, 10:25

Re: К вопросу о правке сканов.

Сообщение nk_ » 28 фев 2005, 23:43

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

Regards,
Nick



Olexa
Сообщения: 5738
Зарегистрирован: 31 авг 2001, 13:07

Re: К вопросу о правке сканов.

Сообщение Olexa » 25 апр 2007, 12:31

: Нужно вытянуть Levels, чтобы самые темные места (чуть отличающиеся от черного) стали черными, а самые светлые - стали белыми.

Приловчился использовать для этого такой метод, позволяющий двигать Levels не на глаз, а довольно алгоритмизированно (кстати, с белым проблема бывает в том, что он даже не серый, а желтоватый).

1. На стандартных картах ГШ внизу слева от рамки есть "палитра". Выделяем прямоугольником (Rectangular Marquee Tool, кнопка M) максимальный кусочек, в который попадёт только чёрный цвет. Если палитры нет, находим место на карте, где мы сможем таким образом выделить максимальный кусочек чёрного цвета.
2. Копируем его в буфер обмена: Ctrl+C.
3. Создаём новое изображение предложенного Photoshop'ом размера (он предложит такого размера, как скопированный в буфер обмена участочек): Ctrl+N, Enter.
4. Вставляем скопированное в новое изображение: Ctrl+V.
5. Выделяем всё изображение: Ctrl+A.
6. Усредняем цвет: меню Filter -> Blur -> Average.
7. Выбираем Eyedropper Tool (кнопка I) и берём пробу усреднённого цвета нового изображения.
8. Переписываем значения RGB цвета из палитры инструментов Color (открывается по F6).
9. Закрываем созданное изображение без сохранения.

10-18. Повторяем то же, но для белого цвета: выбираем как можно больший участок как можно худшего белого цвета на карте.

19. Если исходное изображение в индексированном цвете, конвертируем его в RGB: меню Image -> Mode -> RGB Color.

20. Открываем иниструмент настройки уровней: меню Image -> Adjustments -> Levels, или Ctrl+L.
21. Нажимаем Ctrl+1, в первом и третьем полях Input Levels вводим значения R для "чёрного" и "белого" цветов нашей карты соответственно.
22. Аналогично, только Ctrl+2 и G.
23. Аналогично, только Ctrl+3 и B.
24. Нажимаем Enter.

25. Если необходимо, конвертируем изображение обратно в индексированный цвет: меню Image -> Mode -> Indexed Color

Если я чего не так предложил, пожалуйста, расскажите, как правильней.


Bushman
Сообщения: 2841
Зарегистрирован: 15 июл 2002, 16:44

Re: К вопросу о правке сканов.

Сообщение Bushman » 25 апр 2007, 12:51

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

Далее - зачем что-то тащить в новые документы, когда можно просто выделить "репрезентативные" области маской и сделать размывание в них прямо в файле карты.

А потом "пипеткой" из Levels уже тыкать прямо в размытые области. (Не в курсе, как это в photoshop, но в некоторых других программах размер "пипетки" можно менять и так автоматически усредняется цвет из зоны, куда ткнул пипеткой.)

Отмечу, что способ с раздельной коррекцией по каналам дает возможность устранить matte (то есть константный оттенок, например - желтый, от бумаги), но более "длителен". Если matte отсутствует, то достаточно простого histogram stretch.

Сильный matte устраняется также таким образом:
цвет фона (бумаги, которая должна быть белой) также усредняется, создается новый слой, заливается этим цветом, режим blending устанавливается в Divide, после чего нужно сделать Flatten всем слоям и сделать histogram stretch, растянув гистограмму с черной стороны на величину, равную разнице между яркостью белого и яркостью того цвета, которым был окрашен фон.


Olexa
Сообщения: 5738
Зарегистрирован: 31 авг 2001, 13:07

Re: К вопросу о правке сканов.

Сообщение Olexa » 25 апр 2007, 13:10

: Начнем с того, что цветокоррекцию никогда нельзя делать в палитровых режимах, всегда - только в RGB. Так что перевести в RGB стоит сразу.

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

: Далее - зачем что-то тащить в новые документы, когда можно просто выделить "репрезентативные" области маской и сделать размывание в них прямо в файле карты.

А потом отменить изменение? Да, пожалуй, можно, но тогда действительно нужно перевести в RGB сразу. Усреднение цветов репрезентативных участков перед общей коррекцией я бы всё-таки откатил назад, поскольку на карте, помимо этого, и так может быть шум (цветные капельки на белом, ворсинки на чёрном), и если отдельные участки будут выделяться идеальностью, это может быть не совсем красиво. Кроме того, палитра на краю карты даже после цветокоррекции должна представлять цвета карты во всей их ущербности, то есть, с шумом, так что в ней точно не стоит оставлять цвета усреднёнными.

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

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


Bushman
Сообщения: 2841
Зарегистрирован: 15 июл 2002, 16:44

Re: К вопросу о правке сканов.

Сообщение Bushman » 25 апр 2007, 13:23

Подсказываю способ:
палитра на краю вырезается в отдельный файл, усредняется (могут понадобиться доп. действия типа "размыть ее целиком", чтобы получить области с цветами на границе с фоном) переводится в палитровый режим, сохраняется в GIF.
А далее, средствами imagemagick все имеющиеся карты подобного типа (в RGB) переводятся в палитровый режим и сохраняются, используя в качестве аргумента для загрузки палитры тот самый gif, содержащий обработанную палитру с края листа.

Способ подлежит оптимизации и экспериментальной работе.


Olexa
Сообщения: 5738
Зарегистрирован: 31 авг 2001, 13:07

Re: К вопросу о правке сканов.

Сообщение Olexa » 25 апр 2007, 13:38

В таком случае потеряются полутона на границах цветов. Для векторизации привычными векторизаторами, не понимающими полутонов, должно подходить, а для получения красивого растра ≈ не очень. Можно попробовать привести к чистой палитре в большом разрешении, а потом уменьшить его в RGB режиме, тогда полутона на переходах появятся. Можно добавить в палитру нужных промежуточных цветов. В любом случае шумом на заливках нужно заниматься отдельно.


Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 149 гостей