Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Най-четени

Даниел Десподов
Даниел Десподов
Новинар. Увличам се от съвременни технологии, информационна безопасност, спорт, наука и изкуствен интелект.

Оригиналът е на anfractuosus

Целта на този проект бе извеждането на цветно изображение на черно-бял монитор чрез поставяне върху екрана на разпечатан на ацетатно фолио с помощта на струен принтер филтър на Байер.

Филтърът на Байер е двумерен  масив от малки цветни филтри, покриващ оптичните сензори. Използва се за получаване на цветно изображение чрез матриците на цифровите фотоапарати, камери, скенери и други. Филтърът на Байер се състои от 25% червени елементи, 25% сини и 50% зелени, които са разположени по следния начин:

Проектът Rainbow: показване на цветно изображение с черно-бял монитор
Масивът от цветни филтри на общия филтър на Байер

Матрицата на оптичния сензор възприема проецираното върху нея изображение. Но нейните фотодиоди са еднакво чувствителни към всички цветове на видимия спектър (черно-бяло изображение) и за да може да се получи цветно изображение, всеки фотодиод на матрицата е покрит от масив филтри, включващ основните цветове – червен, зелен и син – това всъщност е познатият RGGB модел.

Но заради използването Филтъра на Байер, всеки фотодиод на оптичната матрица получава само една трета от информацията за съответната малка част на изображението. А за получаването на точни и верни цветове се използват значенията и от съседните фотодиоди, Тази информация се обработва от процесора на цифровия фотоапарат, като във формирането на крайното изображение участват 9 или повече фотодиода на матрицата.

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Ясно е, че всеки блок от четири фотодиода получава двойно повече зелена светлина и това се прави, за да се постигне по-голямо съответствие с особеностите на човешкото зрение.

Съвременните цифрови фотоапарати дават възможност за запис на ‘суровия’ материал във вид на Raw формат, в който се записват непроменените сигнали на яркостта на всеки един фотодиод – тоест, във файла директно се записват данните от матрицата, които след това се обработват от компютър, възможностите на който са много по-големи от сравнително слабия процесор на фотоапарата.

Но в масовите устройства – смартфоните, по-евтините фотоапарати и камери се използва предимно филтър на Байер за преобразуване на черно-бялото изображение с висока резолюция в цветно изображение с по-ниска резолюция.

Дали не можем да направим нещо подобно, само че да погледнем тази технология под малко по-друг ъгъл?

Купих си от eBay черно-бял монитор, за да мога качествено да разглеждам черно-белите снимки, но ми стана интересно, дали не мога да получа ефекта на автохрома, при който цветните филтри, направени от зрънца нишесте с трите основни цвята се поставят върху плаката и така се получават цветни изображения.

На снимката по-долу е показано увеличеното изображение на матрицата на моя монитор, направено с евтин USB микроскоп с увеличение 500 пъти. Виждат се пикселите, от които е съставен този черно-бял LCD дисплей. В началото помислих, че всеки пиксел е съставен от 4 субпиксела, но след това стана ясно, че всеки пиксел се състои от три групи светодиоди с <-образна форма (по-долу пак ще се спрем на това).

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Направих си pdf файл с модела на филтър на Байер с размери 433,1 мм × 324,8 мм. Резолюцията на монитора е 2048×1536 пиксела и предположих, че височината и ширината на пикселите са еднакви.

Ето как изглежда този pdf файл. Тук например, синята точка трябва да се представи от блок от 2х2 пиксела на черно-белия монитор.

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Направих 3 pdf файла:

  • bayer_1.pdf – всяка цветна точка се образува от 1 пиксел на дисплея
  • bayer_2.pdf – всяка цветна точка се образува от 2х2 пиксела на дисплея
  • bayer_4.pdf – всяка цветна точка се образува от 4х4 пиксела на дисплея

Ето как изглежда ацетатното фолио с разпечатан филтър на Байер:

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

А ето го черно-бялото изображение, което е раздробено на мозайка и е получено от цветното;

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Как се прави тази мозайка

Вземаме един пиксел от цветното изображение, който в конкретния случай има син цвят с лек лилав отенък. Този син пиксел се превръща в блок от четири сиви елемента. Върху този блок от 2х2 елемента налагаме разпечатаното по-рано ацетатно фолио с филтъра на Байер. Не е трудно да видим, че най-светла е горната лява част на този блок, който в нашия филтър на Байер съответства на синия цвят. Там където са зелените елементи на филтъра, елементите са тъмни и зеленият цвят не участва. Долният сив елемент не е толкова тъмен и добавя червен нюанс към синия цвят, като в крайна сметка се получава леко лилав отенък. По този начин се получават всички останали цветове и отенъци.

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Забелязвам, че моят монитор по подразбиране показва изображението в портретен режим. За да се прехвърля към пейзажен режим в Linux използвах следната команда в терминала:

xrandr --output HDMI1 --rotate left

Да, ефектът е доста слаб, но все пак цветовете на балоните могат да бъдат различени:

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Видеа, възпроизвеждани с помощта на ацетатното фолио

Ето един клип, който демонстрира тази ефект и се възпроизвежда със следните параметри:

mpv out.mkv --fullscreen --loop --brightness=10 --contrast=20

По този начин указваме клипа да се възпроизвежда на цял екран, да се зацикли и едновременно с това се задават яркостта и контраста на видеото.

Изображението с 2х2 филтър на Байер, гледано под микроскоп

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Шахматният десен

Ефектът е твърде слаб и започнах да търся начини за неговото подобряване. Един приятел ме посъветва да използвам изпитателен сигнал, който показва шахматно поле. Оказа се, че един пиксел на този монитор е съставен от три субпиксела.

Снимката по-долу показва единичните пиксели на монитора, който този път е в пейзажен режим и ориентацията на изображението е коректна.

1х1
Проектът Rainbow: показване на цветно изображение с черно-бял монитор

2х2
Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Микроскоп с микрометър

Реших да използвам филтър на Байер с блок от 2х2 елемента и микроскоп с микрометър със стъпка 0,01 мм. Първоначалните ми пресмятания показаха, че размерите на всеки бял и черен блок би трябвало да са 0,42 мм х 0,42 мм, което приблизително съвпадна с измерванията.

Не бе никак лесно да настройвам микроскопа на отделен пиксел и едновременно с това да фокусирам изображението. Използвах микрометър, който обърнах обратно ‘нагоре с краката’, за да може разпечатката да е по-близко до пикселите, но по този начин микроскопът имаше твърде малко фокусно разстояние.

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Ето как използвай микрометъра във вертикална ориентация, за да мога да измеря големината на шахматните квадрати:

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Без да искам открих, че микрометърът е по-лесно да бъде използван за калибриране на микроскопа, а не за задаване на направлението. Направих снимка на микрометъра с 500 пъти увеличение и написах един съвсем опростен скрипт, определящ местоположението на линиите и измерващ колко точки имаме на 1 мм. Оказа се, че в 1 мм се побират 1241,5 пиксела.

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Използвайки първоначалните си изчисления, ширината на панела и броя на пикселите,  получих, че размерът на пиксела е 0,21 х 0,21 мм.

0.21147460937*1241.5 = 262.5

Тоест, това са почти 263 пиксела както ширина, така и дължина.

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Подобренията

Разбира се, веднага ми стана интересно, дали цветността ще се подобри, след като успях да измеря точната дължина и ширина на пикселите с помощта на микроскопа, и тази информация използвам за печатането на филтъра върху фолиото.

Важен момент е и подравняването – точното съвпадение на елементите на филтъра с пикселите на черно-белия кинескоп. Изглежда пак ще използвам микроскопа.

Следващата снимка показва увеличеното изображение на филтъра на Байер, който разпечатах на ацетатното фолио. Замислих се, дали резултатът може да бъде подобрен чрез използването на друга технология за нанасянето изображението на филтъра върху фолиото.

Проектът Rainbow: показване на цветно изображение с черно-бял монитор

Ето защо, направих друг филтър чрез по-съвършена технология за печат върху прозрачни материали. Следното видео показва какво се е получило:

Ето тук съм качил кода са създаването на pdf файловете и раздробените на мозайки изображения, както и видеата.


Още в началото виждаме, че второто име на проекта е ‘Моят глупав начин да накарам черно-белия монитор да показва цветни изображения’ чрез специално създадени монохромни изображения, които се наблюдават чрез филтър на Байер. Получило се е доста добре.

Авторът на проекта препоръчва за четене на pdf файловете да се използва foxitreader за Linux, който ги показва много добре и при 1000% увеличение.

АбонаментВсичко важно от света на технологиите, директно в пощата ти.

С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!

3 Коментара
стари
нови оценка

Нови ревюта

Подобни новини