Open Way | Systems | Distro | Shell | Desktop | Applications
Network | Development | Download | OfftopicКарта сайта
FreeNotesФорум POSIX.ru
На главную страницу

Обработка отсканированных рисунков при помощи Гимпа

Алексей Корельский aka snake
2005.02.25

  1. Вступление
  2. Рисунок шариковой ручкой на листе белой бумаги.
  3. Рисунок шариковой ручкой на листе в клетку. #1
  4. Рисунок шариковой ручкой на листе в клетку. #2
  5. Рисунок цветным карандашом на листе в клетку (разделение по цвету)

Вступление

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

Собственно, почему я решил оформить результаты своих изысканий? Дело в том, что посещая различные артсайты, особенно ориентированные на новичков и любителей, я обнаружил, что аналогичные проблемы стоят не только передо мной, это было очевидно, и так же то, что зачастую их решают крайне не рационально, а то и вовсе не решают никак... Так, например, на форуме одного такого сайта, я высказал мысль о полезности просветить новичков насчет простых методов обработки сканов, на что мне ответил, некто Dilandu, неплохой, кстати, художник:

"...мусор со сканов убирается ручками и терпением. Если текстура бумаги не важна, то просто вытирается ластиком в режиме "кисть", а если важна, то штампом...."

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

А между тем, покрайней мере частные решения проблемы, имеються. Далее, несколько конкретных примеров:

Рисунок шариковой ручкой на листе белой бумаги.

Это необработанный и уменьшенный в три раза рисунок. Сканирование происходило в режиме "шкала серого" и с разрешением 800 dpi. Как видите, сканер великолепно справился с задачей и очень четко вопроизвел и чернильные штрихи, и фактуру бумаги. Вот кусочек изображения в натуральную величину:

А это кусок фона, также в натуральном размере:

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

А теперь посмотрим гистограмму отдельно фона:

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

Теперь совершенно очевидно, что сместив точку белого (крайний правый движек) на первой гистограмме мы заставим все точки фона стать белыми:

Здесь я также наложил гистограмму фона. И вот что мы получим в итоге всех манипуляций:

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

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

Прим: так расположил окна и обесцветил изображение я специально в целях уменьшения размера картинки и "веса" файла.

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

Рисунок шариковой ручкой на листе в клетку.

Случай с таким рисунком можно откаментировать так: "каждый сам себе злобный буратин!" Спрашиваеться -- зачем создавать себе лишние трудности и использовать для рисования явно неподходящие для этого материалы? Впрочем, ситуации в жизни бывают всякие и из такого рисунка можно что-нибудь выжать. Скажу сразу без потерь здесь не обойдется. Весь вопрос в том, какой уровень потерь можно счесть приемлемым. Ответ, разумеется, зависит от ваших дальнейших видов на данный эскиз и желания (не желания) тратить на него время.

Поскольку, средние яркости клеточек фона и линий рисунка хоть и не слишком сильно, но все же отличаються, возможно применить метод описанный в предыдущем примере. Вот, примерно, что из этого может получиться:

Воспользовавшись советом Dilandu я очистил исходный рисунок в ручную один раз с сохранением текстуры бумаги ("залепил" клеточки "штампом") второй раз - без (просто "ластиком" потер фон):

В первом случае у меня ушло 10 минут, во втором -- 15. Что, по моему мнению, на такой несложный рисунок непозволительно долго. Ктому же, даже даже при пожатии в jpeg и уменьшении заметно невысокое качество обработки "ластиком", что бы его повысить придется затратить гораздо больше усилий: чаще менять кисти, аккуратнее обрабатывать края и т.п. Кроме того трудоемкость подобных "ручных" методов будет очень быстро возрастать при усложнении рисунка и увеличении колличества линий в нем.

Обратите внимание, что обсуждаемый здесь рисунок цветной следовательно отношение сигнал/шум будет неодинаковым в разных цветовых каналах. Этот факт прекрасно иллюстрируеться разборкой рисунка, например на RGB (Изображение -> Режим -> Разобрать -> RGB):

Обратите внимание на синюю компоненту, которая практически лишена клеточек! Правда, и яркость изображения там наименьшая.

Разобрать изображение можно не только на RGB. Слева канал "яркость" (разобрал как HSV), справа L-канал (LAB):

Как видите на этих изображениях яркость паразитных линий фона отличаеться от яркости линий рисунка, следовательно, фон, хотя бы частично, можно подавить при помощи "уровней". Слева на право, "L", "Яркость", "Синий":

Теперь, подклеиваем "Яркость", "Синий" к "L" в качестве слоев, и смешиваем все слои в режиме "Умножение":

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

В полученом, после сведения, изображении все еще присутствует небольшой мусор, который, уже без особых усилий, можно удалить и в ручную:

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

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

Вот, что из этого у меня получилось:

Рисунок шариковой ручкой на листе в клетку. #2

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



И, вуаля! Эх, всегда бы так просто...

Рисунок цветным карандашем на листе в клетку
(разделение по цвету)

Графика в стиле поэтов - "певцов революции"? Возможно, но нас интересует другое, а именно синий канал и его гистограмма:


Ситуация в точности повторяет самый первый случай и поступать необходимо соответственно:

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

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

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

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

В заключении с получившимся рисунком можно произвести такую же операцию, что и в примере с лампочкой, и даже лучше. Создайте новое изображение такого же размера, что и полученное после обработки. Залейте фон нужным вам цветом, я не стал оригинальничать -- взял красный. Вклейте новый белый слой и дабавьте к нему в качестве маски обработанный синий канал.

И вот что получиться в итоге:

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


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