Целью данного проекта было вывести цветное изображение на чёрно-белый монитор путём наложения на экран распечатанного на ацетатной плёнке (на струйном принтере) фильтра Байера. Цветное изображение получается как мозаика.
Я купил на eBay ч/б монитор Eizo для просмотра ч/б фотографий, и мне стало интересно, смогу ли я воспроизвести эффект типа автохрома, в котором цветные фильтры из крупинок крахмала накладываются на ч/б фотопластинку, давая цветное изображение.
На фото ниже дано увеличенное дешёвым USB-микроскопом в 500 раз изображение пикселей, из которых состоит ч/б ЖК-дисплей. Сначала я подумал, что каждый пиксель составлен из 4 субпикселей, но потом пришёл к выводу, что каждый пиксель состоит из трёх групп светодиодов в форме < (см. далее).
Я сделал pdf с узором Байера и размерами 433,1 мм × 324,8 мм. Разрешение монитора равно 2048×1536, и я предположил, что высота и ширина у пикселей одинаковая.
Пример созданного pdf привожу ниже. К примеру, голубой элемент должны представлять 2×2 пикселя ч/б монитора.
Я создал 3 pdf:
- bayer_1.pdf – каждый элемент обозначен 1 пикселем дисплея.
- bayer_2.pdf – каждый элемент обозначен 2×2 пикселями дисплея (эта ацетатная плёнка использовалась в видео).
- bayer_4.pdf – каждый элемент обозначен 4×4 пикселями дисплея.
Вот так выглядит ацетатная плёнка с распечатанным узором Байера:
Вот ч/б изображение, разбитое на мозаику, полученное из цветного:
Как это работает
Берём пиксель с цветного изображения. Синий пиксель превращается в четыре серых элемента. Накладываем на него ацетатную плёнку с узором Байера.
Судя по всему, мой монитор по умолчанию выводит изображение в портретном режиме. Чтобы переключить его в ландшафтный режим, на Linux я применил команду:
xrandr --output HDMI1 --rotate left
Какой получается эффект
Как видите, эффект получился довольно слабый, однако цвета воздушных шаров различить можно.
Видео эффекта применения ацетатной плёнки
Ознакомьтесь с демонстрацией этого эффекта на видеоролике, воспроизведённом со следующими параметрами:
mpv out.mkv --fullscreen --loop --brightness=10 --contrast=20
Изображения фильтра Байера 2×2 под микроскопом
Я попытался сделать такой фильтр, в котором квадратики одного цвета закрывают 2×2 пикселя монитора.
Шахматный порядок
По совету знакомого я вывел на монитор изображение в виде шахматного узора, и оказалось, что одиночный пиксель монитора состоит из трёх субпикселей.
На следующем фото показаны одиночные пиксели, монитор стоит в ландшафтном режиме, и ориентация изображения корректна.
1×1
2×2
Микроскоп с микрометром
Я использовал шахматный узор 2×2 и микрометр от микроскопа с шагом в 0,01 мм. По первоначальным расчётам я предположил, что размеры каждого белого/чёрного блока должны составить 0,42 мм × 0,42 мм, что примерно совпало с измерениями.
Было тяжело одновременно наводиться на пиксели и фокусировать изображение. Я использовал микрометр, повёрнутый вверх ногами, чтобы распечатка была ближе к пикселям, но у микроскопа получилось очень маленькое фокусное расстояние.
Использование микрометра в вертикальной ориентации, для измерения размера шахматных квадратов.
Я обнаружил, что микрометр проще использовать для калибровки микроскопа, а не как направляющую. Я сделал фото микрометра с увеличением в 500 раз, и написал простой скрипт, определяющий местоположение линий и измеряющий общую длину микрометра на 1 мм. Получилось, что на 1 мм умещается 1241,5 пикселей.
Используя первоначальные вычисления, ширину панели и количество пикселей, я получил размер пикселя в 0,21 мм × 0,21 мм.
0.21147460937*1241.5 = 262.5
= 263 пикселя в высоту и ширину.
Возможные улучшения
Интересно, можно ли улучшить этот эффект, измерив точную высоту и ширину пикселей под микроскопом, и использовав эту информацию для печати на плёнке.
Также важным моментом является выравнивание, нужно подумать над тем, как это улучшить — возможно, для этого тоже нужно использовать микроскоп.
Следующее фото показывает увеличенный результат печати на плёнке. Мне стало интересно, можно ли улучшить результат при помощи другой технологии переноса изображения на плёнку.
Поэтому я изготовил фильтр при помощи технологии печати на прозрачной плёнке от Kodak под названием Duraclear. И вот результат на видео:
Исходный код
→ Код для создания PDF и мозаичных изображений и видео
Автор: Вячеслав Голованов