YUV: цветовая модель и формат изображений
YUV - это цветовая модель, которая представляет изображение в виде трех компонент: яркость (Y) и две цветовых компонента (U и V). Она широко используется в аналоговом и цифровом видео и часто используется для хранения и передачи цветных изображений.
Основная идея YUV состоит в разделении цвета и яркости изображения. Компонента Y кодирует яркость пикселя, а компоненты U и V содержат информацию о цветности. Компонента U отражает различия в красно-зеленом цвете, а компонента V отражает различия в сине-фиолетовом цвете.
Преимущество использования YUV заключается в том, что человеческий глаз более чувствителен к яркости, чем к цвету, поэтому separate компоненты позволяют уменьшить объем данных, не сильно ухудшая воспринимаемое качество изображения. Это особенно полезно при передаче видео через сеть или в случаях, когда требуется экономить пропускную способность.
Пример кода на языке Python, позволяющий конвертировать изображение из RGB в YUV и обратно:
python
import cv2
import numpy as np
# Загрузка изображения
image = cv2.imread("image.jpg")
# Конвертирование изображения из RGB в YUV
image_yuv = cv2.cvtColor(image, cv2.COLOR_BGR2YUV)
# Изменение компоненты Y (яркость)
image_yuv[:,:,0] = cv2.equalizeHist(image_yuv[:,:,0])
# Конвертирование изображения из YUV в RGB
image_rgb = cv2.cvtColor(image_yuv, cv2.COLOR_YUV2BGR)
# Отображение изображений
cv2.imshow("Original Image", image)
cv2.imshow("Equalized YUV Image", image_rgb)
cv2.waitKey(0)
cv2.destroyAllWindows()
В этом примере мы используем библиотеку OpenCV, чтобы загрузить изображение и осуществить конвертирование между цветовыми пространствами RGB и YUV. Затем мы улучшаем компоненту яркости путем применения гистограммного выравнивания канала Y и снова конвертируем изображение из YUV в RGB. Результаты показывают оригинальное изображение и улучшенное изображение YUV.