При коррекции цвета не всегда стоит опираться только на глаза, ведь это может привести к ошибке, так как наши глаза приспосабливаются к изображению, а монитор может быть неправильно откалиброван.
В этой статье мы рассмотрим основные приборы для работы с цветом: Waveform и Vectorscope.
Использую Waveform, мы можем видеть, насколько светлый или темный свет на картинке. Этот прибор представлен в виде графика. На вертикальной оси отображается яркость пикселей, то есть яркие части отображаются в верхней области прибора, а тени внизу. Горизонтальная же ось характеризует ширину изображения, то есть левая часть области показывает пиксели в левой части изображения, а уровни справа показывают пиксели в правой части.
Уровни ниже нижней границы будут обрезаны (потеря информации в области темных тонов/теней), а уровни выше верхней границы также будут обрезаны (потеря информации в области светлых тонов/засветы), поэтому необходимо, чтобы наши уровни находились в диапазоне от нижней до верхней границы.
С помощью этого прибора мы можем засекать засветы и тени.
Код для захвата камеры и создания Waveform, используя программу FFmpeg (для использования кода необходимо заменить RTSP на необходимый):
ffplay -fflags nobuffer -flags low_delay -framedrop -strict experimental -rtsp_transport tcp -i "rtsp://172.18.191.192:554/stream/main" -vf "format=yuva444p9,split=2[m][v],[v]waveform=c=1:e=3:g='green'[v],[m][v]vstack=2" -x 1280 -y 640
Vectorscope - это прибор, который можно использовать для измерения оттенка и насыщенности цветов. Расстояние от центра говорит о том, насколько насыщены цвета. Маленькая точка в центре означает, что это черно-белая картинка. След, близкий к окружающему кругу, означает, что цвета очень насыщены.
Угол в Vectorscope указывает, какой оттенок пикселя на картинке. Чем ярче область действия под определенным углом, тем больше пикселей на изображении имеет этот цвет.
Пики цветов образуют шестиугольник, если отображение цветов пикселей выходит заграницу этого шестиугольника, то цвет перенасыщен (потеря информации в результате перенасыщения какого-либо цвета).
Код для захвата камеры и создания Vectorscope, используя программу FFmpeg (для использования кода необходимо заменить RTSP на необходимый):
ffplay -fflags nobuffer -flags low_delay -framedrop -strict experimental -rtsp_transport tcp -i "rtsp://172.18.191.192:554/stream/main" -vf "format=yuva444p9,split=2[m][q],[q]vectorscope=b=0.7:m=color3:g=color[q],[q]pad=iw:ih+568[q],[m][q]hstack=2" -x 1280 -y 640
Код для захвата камеры, создания Vectorscope и Waveform в одном окне, используя программу FFmpeg (для использования кода необходимо заменить RTSP на необходимый):
ffplay -fflags nobuffer -flags low_delay -framedrop -strict experimental -rtsp_transport tcp -i "rtsp://172.18.191.192:554/stream/main" -vf "format=yuva444p9,split=3[m][v][q],[v]waveform=c=1:e=3:g='green'[v],[q]vectorscope=b=0.7:m=color3:g=color[q],[q]pad=iw:ih+1080[q],[m][v]vstack=2[first],[first][q]hstack=2" -x 1280 -y 640