Целью данного проекта было вывести цветное изображение на чёрно-белый монитор путём наложения на экран распечатанного на ацетатной плёнке (на струйном принтере) фильтра Байера. Цветное изображение получается как мозаика.

Я купил на 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 и мозаичных изображений и видео