Я проверял выход за пределы гаммы для изображения формата YUV,
как правильно проверить, выходят ли значения RGB за пределы диапазона?
При этом:
Код: Выделить всё
Matrix coefficient : BT-709
Color Primaries : BT-709/sRGB
Resolution : 1920 x 1080p
Преобразование YCbCr (float32) -> RGB (нормализованное [0,1]) с помощью BT -709 матрица коэффициентов
затем проверьте для каждого канала, есть ли какое-либо значение < 0 || значение > 1. Если какие-либо значения пикселей удовлетворяют этому условию, они будут считаться вне диапазона.
Второй метод:
Преобразовать< /p>
Код: Выделить всё
YCbCr (float32) -> RGB (normalised [0,1] with BT-709 coefficient matrix)Код: Выделить всё
RGB -> CIE XYZ (using BT-709 color primaries)Код: Выделить всё
CIE XYZ -> xy Coordinates Теперь используем основные цвета создайте треугольник цветности CIE и проверьте, находится ли каждый пиксель внутри треугольника, в противном случае — за пределами гаммы.
Примечание: я пробовал оба этих метода, во втором методе, если любой пиксель из канала RGB становится отрицательным, но все равно говорит, что точка находится внутри треугольника но при использовании первого метода он выходит за рамки.
Подробнее здесь: https://stackoverflow.com/questions/793 ... olor-space
Мобильная версия