Я купил на eBay ч/б монитор Eizo для просмотра ч/б фотографий, и мне стало интересно, смогу ли я воспроизвести эффект типа автохрома, в котором цветные фильтры из крупинок крахмала накладываются на ч/б фотопластинку, давая цветное изображение.
На фото ниже дано увеличенное дешёвым USB-микроскопом в 500 раз изображение пикселей, из которых состоит ч/б ЖК-дисплей. Сначала я подумал, что каждый пиксель составлен из 4 субпикселей, но потом пришёл к выводу, что каждый пиксель состоит из трёх групп светодиодов в форме < (см. далее).
![](https://habrastorage.org/getpro/habr/post_images/96d/3cb/77d/96d3cb77d72db483589cca6f0f047794.jpg)
Я сделал pdf с узором Байера и размерами 433,1 мм ? 324,8 мм. Разрешение монитора равно 2048?1536, и я предположил, что высота и ширина у пикселей одинаковая.
Пример созданного pdf привожу ниже. К примеру, голубой элемент должны представлять 2?2 пикселя ч/б монитора.
![](https://habrastorage.org/getpro/habr/post_images/6fa/d29/8d3/6fad298d3829ab4eafe3280c51895c9c.png)
Я создал 3 pdf:
- bayer_1.pdf – каждый элемент обозначен 1 пикселем дисплея.
- bayer_2.pdf – каждый элемент обозначен 2?2 пикселями дисплея (эта ацетатная плёнка использовалась в видео).
- bayer_4.pdf – каждый элемент обозначен 4?4 пикселями дисплея.
Вот так выглядит ацетатная плёнка с распечатанным узором Байера:
![](https://habrastorage.org/getpro/habr/post_images/4aa/e18/7ee/4aae187eebb0a5fa11c6f11ca7e183b9.jpg)
Вот ч/б изображение, разбитое на мозаику, полученное из цветного:
![](https://habrastorage.org/getpro/habr/post_images/36c/4a4/7d1/36c4a47d17933dca29b3b01809c4a407.png)
Как это работает
![](https://habrastorage.org/getpro/habr/post_images/e18/3eb/f0e/e183ebf0eb3ce32fc93705d697d9ce44.png)
Берём пиксель с цветного изображения. Синий пиксель превращается в четыре серых элемента. Накладываем на него ацетатную плёнку с узором Байера.
Судя по всему, мой монитор по умолчанию выводит изображение в портретном режиме. Чтобы переключить его в ландшафтный режим, на Linux я применил команду:
xrandr --output HDMI1 --rotate left
Какой получается эффект
Как видите, эффект получился довольно слабый, однако цвета воздушных шаров различить можно.
![](https://habrastorage.org/getpro/habr/post_images/e8d/8cf/e27/e8d8cfe27132a8b0dd4b00c798115986.jpg)
Видео эффекта применения ацетатной плёнки
Ознакомьтесь с демонстрацией этого эффекта на видеоролике, воспроизведённом со следующими параметрами:
mpv out.mkv --fullscreen --loop --brightness=10 --contrast=20
Изображения фильтра Байера 2?2 под микроскопом
Я попытался сделать такой фильтр, в котором квадратики одного цвета закрывают 2?2 пикселя монитора.
Шахматный порядок
По совету знакомого я вывел на монитор изображение в виде шахматного узора, и оказалось, что одиночный пиксель монитора состоит из трёх субпикселей.
На следующем фото показаны одиночные пиксели, монитор стоит в ландшафтном режиме, и ориентация изображения корректна.
1?1
![](https://habrastorage.org/getpro/habr/post_images/1b2/36b/699/1b236b6991f6bf3d98eb55f9ea78b392.jpg)
2?2
![](https://habrastorage.org/getpro/habr/post_images/85d/22d/16b/85d22d16b298798d9c94d2a63d8c2061.jpg)
Микроскоп с микрометром
Я использовал шахматный узор 2?2 и микрометр от микроскопа с шагом в 0,01 мм. По первоначальным расчётам я предположил, что размеры каждого белого/чёрного блока должны составить 0,42 мм ? 0,42 мм, что примерно совпало с измерениями.
Было тяжело одновременно наводиться на пиксели и фокусировать изображение. Я использовал микрометр, повёрнутый вверх ногами, чтобы распечатка была ближе к пикселям, но у микроскопа получилось очень маленькое фокусное расстояние.
![](https://habrastorage.org/getpro/habr/post_images/7ea/c41/1bc/7eac411bc9a01c8bfc352438464212ea.jpg)
![](https://habrastorage.org/getpro/habr/post_images/3c8/905/bb8/3c8905bb8134b2da29e7a8ce5f3a393b.jpg)
Использование микрометра в вертикальной ориентации, для измерения размера шахматных квадратов.
![](https://habrastorage.org/getpro/habr/post_images/d2d/537/4f9/d2d5374f9fab4b60066c547e95c295f8.jpg)
Я обнаружил, что микрометр проще использовать для калибровки микроскопа, а не как направляющую. Я сделал фото микрометра с увеличением в 500 раз, и написал простой скрипт, определяющий местоположение линий и измеряющий общую длину микрометра на 1 мм. Получилось, что на 1 мм умещается 1241,5 пикселей.
![](https://habrastorage.org/getpro/habr/post_images/201/d64/396/201d643969ee7ff2c37fdf710d504143.png)
Используя первоначальные вычисления, ширину панели и количество пикселей, я получил размер пикселя в 0,21 мм ? 0,21 мм.
0.21147460937*1241.5 = 262.5
= 263 пикселя в высоту и ширину.
![](https://habrastorage.org/getpro/habr/post_images/7d2/d06/20b/7d2d0620b2fb558dc689bc29ab15a874.png)
Возможные улучшения
Интересно, можно ли улучшить этот эффект, измерив точную высоту и ширину пикселей под микроскопом, и использовав эту информацию для печати на плёнке.
Также важным моментом является выравнивание, нужно подумать над тем, как это улучшить — возможно, для этого тоже нужно использовать микроскоп.
Следующее фото показывает увеличенный результат печати на плёнке. Мне стало интересно, можно ли улучшить результат при помощи другой технологии переноса изображения на плёнку.
![](https://habrastorage.org/getpro/habr/post_images/c87/5e2/5f5/c875e25f5ef6ef4bb6b44e0832f51eb2.jpg)
Поэтому я изготовил фильтр при помощи технологии печати на прозрачной плёнке от Kodak под названием Duraclear. И вот результат на видео:
Исходный код
> Код для создания PDF и мозаичных изображений и видео
LoadRunner
Эх, мне бы такую плёнку в детстве, когда я на чб-телевизоре играл в Dr.Mario на денди. Хотя я и так умудрялся как-то далеко заходить.
Radon17
Отдельно плёнка ничем не поможет. Надо ещё и изображение формировать специально под плёнку