У меня есть фотография карандашного рисунка, сделанного на бумаге, сделанная горячей вспышкой на зеркальной камере и двумя поляризационными фильтрами ( метод кросс-поляризатора для фотографирования на холсте).
Проблема в том, что при приближении к чертежу освещение становится неравномерным, поскольку объектив отбрасывает тень на часть изображения. Это создает градиент над изображением, который приблизительно, но не совсем, линейный.
Ниже приведен пример изображения; оригинал около 3 см в ширину.
Как это можно отредактировать так, чтобы фон был равномерно белым?
-Редактировать-
Результаты сканирования приведены ниже, без исправлений и исправлений. Хотя на первый взгляд это выглядит довольно многообещающе, к сожалению, это полное разрешение, которое вы видите здесь (шириной 600 пикселей); сканер может работать с разрешением 300 точек на дюйм, а ширина рисунка составляет около одного дюйма. Это немного меньше по сравнению с камерой 5000 пикселей.
Кроме того, нескорректированное сканирование намекает на то, что графит действительно отражает хорошую часть света, в отличие от метода кросс-поляризатора.
источник
Ответы:
Метод, который я использовал сам, похож на ваш , но использует плагин Resynthesizer (для GIMP) или Content-Aware Fill (для Photoshop) для восстановления градиента:
Создайте выделение, которое полностью покрывает рисунок. Вы можете сделать это вручную или использовать высокочастотную фильтрацию, чтобы вычислить маску выделения следующим образом:
Начните с использования фильтра обнаружения кромок, такого как « Разница Гаусса», в (копии) вашего сканирования, чтобы грубо извлечь рисунок:
Если результат не контрастен, используйте инструмент Уровни , чтобы затемнить его:
Примените Gaussian Blur :
Используйте инструмент « Порог» , чтобы получить маску, покрывающую весь рисунок, и выберите «Выбрать по цвету», чтобы выбрать ее:
Когда у вас есть выделение, охватывающее чертеж, сделайте копию исходного слоя сканирования и используйте Heal Selection / Content-Aware Fill, чтобы заполнить его. В идеале, ваш скопированный слой должен теперь выглядеть как изображение чистого листа бумаги:
Установите режим отредактированного слоя на Разделить, как в вашем собственном ответе. Если вы хотите сохранить некоторые текстуры бумаги и / или затенения, вы можете немного уменьшить непрозрачность слоя и, возможно, применить небольшое размытие:
(На изображении выше залитый слой Гаусса размыт на 10 пикселей, а непрозрачность установлена на 95%.)
По желанию, после объединения слоев отрегулируйте уровни, чтобы установить черную точку (совет: используйте вид логарифмической гистограммы) и увеличьте контраст:
(Ps. Нажмите на изображения половинного размера, чтобы просмотреть их в полном размере.)
Хорошая особенность этого метода в том, что он может работать довольно хорошо даже для совершенно нелинейных градиентов затенения. Конечно, она не идеальна - если на бумаге есть, скажем, нерегулярное пятно, граница которого частично лежит под рисунком, заполнение с учетом содержания вряд ли восстановит его правильно. Тем не менее, как видно выше, это часто дает довольно приличные результаты.
источник
Редактировать: я написал сценарий Gimp, который выполняет шаги ниже, и еще один для ответа Ilmaris . Оба скрипта доступны для скачивания на GitHub . Предлагаемый путь - вот этот .
Я отвечаю на это прямо здесь, потому что я довольно долго искал решение и нашел простое и работающее решение. Давайте сразу же доберемся до результата:
Создайте фоновый слой, скопировав только вертикальную полосу фона и растянув его до размера исходного изображения.
В Gimp: выберите
r
прямоугольник сверху вниз, содержащий фон, вставьтеShift+Ctrl+V
его в новое изображение и развернитеFilter > Map > Tile
его до размера изображения, запустите гауссово размытие над ним, а затем скопируйте его обратно в изображение в качестве нового слоя.Установите режим слоя на Разделение .
Уменьшите непрозрачность слоя по желанию, например, до 90%. Держать его на 100% обычно слишком ярко.
По сути, это то, что фоновый слой определяет значение RGB
w
«white» для каждого пикселя. Затем режим слоя разделения растягивает значение на изображении с[0,w]
до[0,255]
(см. Режимы слоя GIMP ) на пиксель.(Плохо) Пример использования кривых и линейного градиента
Первые попытки всегда заключались в дублировании слоя, изменении яркости таким образом, чтобы самые темные части снизу были правильно освещены, и добавлении маски слоя с линейным градиентом, чтобы осветлить только более темные области. Чем сильнее градиент, тем хуже он выглядел.
(Лучше) Пример использования деления
Деление дает гораздо лучшие результаты; освещение фиксируется равномерно, и нет сгоревших участков, особенно в левой части рисунка.
источник
Этот ответ описывает самый надежный из известных мне подходов, основанный на ответе Ильмари Канорена . Это полуавтоматический; автоматическая маска не работает для твердых изображений, как показано ниже, потому что в некоторых частях рисунка нет краев.
Этот сценарий Gimp автоматизирует шаги 3 и 4 (обратите внимание, что требуется Resynthesizer), поэтому рабочий процесс прост: создайте выделение, запустите сценарий. Сценарию требуется 15 секунд для создания 15-мегапиксельной картинки на моем 3-летнем ноутбуке.
Шаг 1 (необязательно): отрегулируйте кривые для глубокого черного
Шаг 2: Выберите объект
В Gimp Quick Mask
Shift+Q
- это быстрый способ. Используйте карандашN
и нарисуйте объект белым, нажмите ещеShift+Q
раз, чтобы преобразовать маску в выделение.Шаг 3: воссоздать фон
Шаг 4: Режим деления
Установите режим слоя на Деление и немного уменьшите непрозрачность, если хотите.
источник
Это фотографический форум, поэтому я приму фотографический подход. Конечно, для идеального белого цвета вам, возможно, еще понадобятся некоторые пост-продаксы.
Вместо использования вспышки вы можете попробовать использовать естественный свет. Избегайте прямых солнечных лучей, не держитесь слишком близко к окну, но на расстоянии 2 метров от окна. Это должно уменьшить разницу в освещении между самой близкой и самой дальней частью рисунка. (Но так как это маленькое изображение, расстояние может быть не таким важным.)
Вы можете указать штатив лицом вниз и положить рисунок на пол.
Или, если у вас нет штатива, вы можете расположить обложку книги или коробку с хлопьями, чтобы вертикально держать изображение на столе, и постоянно устанавливать камеру на одном столе. (Поместите белый лист бумаги позади вашего рисунка, чтобы не видеть фоновые изображения или текстуры.)
Техника поляризатора, которую вы упоминаете, имеет место в том случае, если у вас есть рисунок за стеклом, и когда у вас есть яркие объекты или отражения. Но если ваш источник света находится под наклонным углом, вам, вероятно, не нужно использовать фильтр.
источник