Разделение двух очень близких цветов в GIMP (2.9)

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

В цветовом пространстве RGB красный отличается больше всего, на 10 процентных пунктов. HSV и LCH примерно такие же, как RGB. Я пытаюсь увеличить разницу между линиями и фоном, чтобы удалить фон.

Я попытался использовать кривые, чтобы растянуть контраст на красном канале, но это не очень хорошо сработало. Затем я попытался разложить изображение, используя различные модели цветового пространства, затем растянуть отдельные каналы и перекомпоновать. LCH, с растяжением каналов L и C работает лучше всего (H оставлен без изменений), но результат все равно очень шумный, а линии, которые я хочу сохранить, "хрупкие". Любые антишумовые фильтры, которые я пробую, либо ничего не делают, либо ухудшают ситуацию.

Любые другие идеи для вещей, которые я мог бы попробовать?

Обновление: Вот небольшой, но типичный фрагмент рисунка, который я пытаюсь восстановить.

убрать фон как?

Всегда хорошая идея опубликовать фрагмент изображения. И если отсканированное изображение не является 8-битным (JPG/PNG), опубликуйте URL-адрес, по которому можно получить отсканированное изображение в 16-битном формате (TIFF...).
На этот вопрос нельзя ответить должным образом, не видя рассматриваемого документа. Слишком много неизвестных.
Глядя на пример изображения... Вы, вероятно, можете немного улучшить его, но слишком много шума, чтобы очистить его автоматически.

Ответы (5)

Распределите цветовые каналы по разным слоям. Используйте Colors > Component > Decompose, чтобы сделать это.

Растяните контраст во всех слоях, чтобы покрыть полную шкалу 0....255. Сделайте это с помощью «Цвета» > «Авто» > «Растянуть контраст». Теперь у вас есть:

введите описание изображения здесь

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

введите описание изображения здесь

Наконец, мы делаем его темнее:

  • объединить слои "Объединить видимые"
  • отрегулируйте контраст с помощью Кривых:

введите описание изображения здесь

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

Теоретически программа, которая распознает обычные объекты чертежа САПР (линии, окружности, тексты, числа) с помощью статистических методов сопоставления с образцом и заменяет их новыми, может перерисовать ваше изображение. Я не встречал ни одного, который мог бы извлечь что-то полезное из таких испорченных изображений, как ваше. Это не значит, что его не существует.

Если у вас есть возможность использовать AutoCAD, вы можете попробовать его растровый векторизатор, который на самом деле является инструментом управляемого перерисовки. У меня его нет.

Спасибо за ответ. К сожалению, в моем случае полный оригинал (который я не могу опубликовать) не очень однороден по грязи и хорошим линиям. Образец, который я разместил, взят из очень плохого раздела. Что касается автокада, то у меня есть доступ, но сомневаюсь, что он поможет. Я попробовал трассировку Inkscape на этом, и в результате получился непригодный беспорядок, за исключением хороших областей.

Возможное решение (немного выстрела в темноте, не видя образца):

  1. дублировать слой
  2. Размытие по Гауссу сильно так, что линия исчезает
  3. Установить в разностный режим
  4. Layer>New from visible
  5. Color>Desaturate(выберите вариант, который лучше всего сохраняет линии)
  6. Порог, чтобы вывести линии
  7. Вы можете закрасить черным оставшийся шум.
  8. Откройте диалоговое окно «Каналы», щелкните правой кнопкой мыши любой канал RGB иChannel to selection

Теперь у вас есть выделение на ваших линиях, которое вы можете использовать, чтобы ограничить обработку строками (может потребоваться `Выделить>Увеличить на пару пикселей)

Интересный метод, но в моем случае от этого стало хуже, а не лучше. Я обновил свой вопрос, чтобы включить образец.
На самом деле. Глядя на гистограмму вашего образца, мазки фона, кажется, имеют более сильный красный компонент, чем линии рисунка, поэтому может быть способ использовать это. Следите за обновлениями.
  1. Преобразовать в оттенки серого
  2. Открытые кривые
  3. Выберите черную линию с помощью пипетки для справки
  4. Играйте с этими точками, пока не будете удовлетворены.

введите описание изображения здесь

  1. Снова открывайте уровни и точно настраивайте их с большим контролем.

введите описание изображения здесь

введите описание изображения здесь

Я много лет случайно использовал GIMP, и это первый раз, когда я видел, что вы можете использовать пипетку на уровнях. Спасибо. Я узнал кое-что, что буду использовать.

Другой метод:

  • Color>Compoments>Channel mixerи установите вывод Monochromeи используйте:R=200%, G=0%, B=-24%

введите описание изображения здесь

  • Затем улучшите контраст с помощью инструмента Кривые:

введите описание изображения здесь

введите описание изображения здесь

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

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

Во-первых, как заметили и я, и xenoid, разница в красном канале была наибольшей, поэтому я усилил ее. Color>Compoments>Channel mixerи я установил красный цвет в красном канале на 200%.

красный_улучшенный

Затем я разложил на LCH (я верю только в Gimp 2.9; да, поиск LCH как лучшего был долгим методом проб и ошибок). Канал C сначала выглядел ужасно,

Начальный канал C

но после применения Colors -> Auto -> Stretch Contrast HSVэто выглядело лучше:

введите описание изображения здесь

Затем я продублировал слой и запустил Filters -> Edge-Detect -> Difference of Guassiansс настройками по умолчанию (Радиус 1 = 1, Радиус 2 = 2). Затем я установил слой на экран. Удивительно, по крайней мере мне, он показался более резким.

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

Спасибо всем, что ответили.

введите описание изображения здесь