Базовый алгоритм: колоризация.
Задание: на вход поступает изображение, программа отрисовывает окно, в которое выводится либо исходное изображение после преобразования в черно-белое, либо после колоризации.
Задачи:
Модель RGB основана на аддитивной комбинации трех основных цветов – красного (Red), зеленого (Green) и синего (Blue). Она описывает системы, основанные на испускании света для получения нужного цвета (телевизоры, мониторы). Сами по себе значения R, G, B не несут физического смысла, нужна привязка к исходному цветовому пространству. В основном методы компьютерного зрения по умолчанию работают именно в формате RGB.
В большинстве изображений пиксели представлены двумя способами: в оттенках серого и в цветовом пространстве RGB. В изображениях в оттенках серого каждый пиксель имеет значение между 0 и 255, где 0 соответствует чёрному, а 255 соответствует белому. А значения между 0 и 255 принимают различные оттенки серого, где значения ближе к 0 более тёмные, а значения ближе к 255 более светлые.
Цветные пиксели обычно представлены в цветовом пространстве RGB. Каждая из трёх компонент представлена целым числом в диапазоне от 0 до 255 включительно, которое указывает как «много» цвета содержится. Затем мы объединяем значения всех трёх компонент в кортеж вида (красный, зеленый, синий). К примеру, чтобы получить белый цвет, каждая из компонент должна равняться 255: (255, 255, 255). Тогда, чтобы получить чёрный цвет, каждая из компонент должна быть равной 0: (0, 0, 0).
Исходное изображение:




На вход подавалась 1 черно-белая фотография размером 631 на 631 пиксель. На выходе алгоритм выдавал колоризированное изображение по заранее заданной цветовой шкале.
Составим таблицу, чтобы сравнить быстродействие реализованных алгоритмов.
Алгоритм | Python с библиотекой | Python нативно | C++ |
---|---|---|---|
CPU times | 154 ms | 543 ms | 0,467 ms |
Wall time | 164 ms | 545 ms | 0,467 ms |