Как стать автором
Обновить

Проект «Радуга» – попытка показать цветное изображение на чёрно-белом мониторе

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

Я купил на 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 и мозаичных изображений и видео
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+80
Комментарии18

Публикации

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн