2010-03-14 5 views
2

Есть специальные виды изображений, называемые «дутонетом», которые имеют только два канала. В основном он используется, когда вы хотите добиться более качественного воспроизведения - иметь печатный станок с двумя цветами (черный, серый).Компьютерная графика: программно создавать дуотоны (или разделения)

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

Я знаю, что я могу настроить кривые в Photoshop - это не то, что я прошу, а не как это делать программно? Возможно, есть библиотека, которая может это сделать? Что относительно «компенсации усиления точки»? «Общий охват чернил»?

Или, какие существуют алгоритмы для создания «разделов»?

ответ

2

Вы можете сделать это программно. Цветные операции, подобные этим, довольно просты, но делать это программно по-прежнему требует настройки.

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

Ваша цель состоит в том, чтобы создать два новых канала (дуот), которые являются цветом A и цветом B. (A, B, соответственно). Я предполагаю, что вам нужен эффект, который A или B присутствует или нет в определенном месте. Таким образом, возможные значения для каждого местоположения: A, AB, B и none.

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

Есть несколько методов для их воплощения, но давайте оставим это просто: изображение имеет только один канал, G, и мы будем применять пороговый фильтр:

threshold = 0.25 
IF G < (0.5 + threshold) THEN A 
IF G >= (0.5 - threshold) THEN B 

Например, с этими значениями для G :

G   AB 
0.0  A 
0.1  A 
0.2  A 
0.3  AB 
0.4  AB 
0.5  AB 
0.6  AB 
0.7  AB 
0.8  B 
0.9  B 
1.0  B 

Теперь вы используете только три из четырех возможных значений дуэта. Следующие будут делать лучше:

thresholdA = 0.25 
thresholdB = 0.5 
IF G >= thresholdA && G < (1 - thresholdA) THEN A 
IF G >= thresholdB       THEN B 

G   AB 
0.0  
0.1  
0.2  A 
0.3  A 
0.4  A 
0.5  AB 
0.6  AB 
0.7  AB 
0.8  B 
0.9  B 
1.0  B 

Вам придется настроить пороги. Если вы позволите сделать настройку в графическом интерфейсе, то вы создали свой собственный (мелкий) Photoshop :-)

+0

Спасибо! У меня есть еще два вопроса: в первом примере вы упомянули, что я использую только 3 из 4 значений, true, но если G = 0, скорее всего, A (также очень близко) 0, нет? И во-вторых, разве это не слишком просто для реальной печати? Вы упомянули, что существует несколько способов перевода из G (или RGB) в AB, пожалуйста, нет ли у вас больше указателей? Кроме того, как компенсировать серый цвет, не являющийся 50% черного и различных артефактов печати (увеличение точки, покрытие с покрытием/без покрытия, ...)? – TarGz

+0

Цвета А и В определяются пользователем, таким образом, вами. Если вы выбрали A черным, вы также должны настроить порог. Вы упомянули два цвета: черный и серый, затем соответствующим образом настройте пороговые значения (порог 0,25 в первом примере будет работать для такой ситуации). Это не лучший способ сделать это, но он дает обзор того, как вы можете атаковать проблему. Если ваш серый цвет не на 50% черный, вам придется настроить порог. Вы можете проверить это, переведя градиент (белый - черный) в дуотоном и распечатав его. Затем отрегулируйте порог. – Pindatjuh

0

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

Для получения справок по другим вопросам, которые вы выбрали в своем вопросе, вам следует изучить библиотеки управления цветом (ColorSync в Mac OS X, Windows Color System или LittleCMS).

Если вы хотите получить более глубокое понимание, начните с записей в Википедии по image processing и color management.

Дополнительная информация в ответ на комментарии:

СМ может помочь компенсации растискивания и преобразования изображения в оттенках серого из других цветовых пространств, таких как RGB.

То, как Photoshop делает дуотоны, не позволяет даже разделить изображение на два, а просто включает в себя инструкции в файле для печати одного полутонового изображения дважды, при необходимости изменяя значения. Если вы хотите создать файл изображения, который может использоваться другими программами, такими как InDesign для создания документов, подходящих для коммерческого принтера, вы захотите создать файлы EPS. См. Документацию на веб-сайте Adobe по EPS и PostScript.

Регулировка по пикселям осуществляется путем создания таблиц поиска для каждой чернил. Таблицы имеют записи для каждого значения оттенков серого. Для 8-битного изображения в оттенках серого таблица поиска будет содержать 256 значений. Таблица поиска заполняется путем решения кривой для каждой чернил. Затем запустите свои исходные данные в градациях серого, заменив каждое значение на то, что находится в этом месте в таблице поиска. Например, скажем, ваша первая кривая помещает значение 102 в слот 127, а вторая кривая помещает значение 153 в слот 127. Тогда ваш первый цвет будет печатать со скоростью 40% для каждого пикселя исходного изображения, что составляет 50%, и ваш второй цвет будет печатать на 60% для каждого пикселя исходного изображения, что составляет 50%.

+0

Если я правильно понимаю это, проблема с любой CMS заключается в том, что вам нужен профиль ICC для желаемого пространства (дуот). Но, скорее всего, такой профиль является проприетарным или просто несуществующим, поэтому я прошу об этом, чтобы понять, как превратить серо-масштабное изображение в дуот, возможно подходящий для печати. – TarGz

+0

Другими словами, как программно отделить шкалу серого до двух каналов? Я знаю, что ссылки, но они не говорят, как идти по моему вопросу ... – TarGz

+0

Большое спасибо за ответ, но вы все еще не сказали мне, где я могу получить, что «102» и «153». Из кривых. Откуда мне получить кривые? CMS? Скорее всего, профиля не будет. И даже если бы я мог измерить LAB моих твердых тел, я до сих пор не знаю, в какой интенсивности я должен печатать другие оттенки. «при необходимости корректировать значения» - не могли бы вы рассказать об этом? – TarGz

Смежные вопросы