Я прочитал документ https://ffmpeg.org/ffmpeg-filters.html#colorchannelmixer ; но я не могу понять смысл примера,

colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131

Кто-нибудь может объяснить каждое значение? .393, .769 .... почему у него 11 номеров?

2 ответа2

1

Фильтр принимает до 16 значений в следующем порядке,

colorchannelmixer=rr:rg:rb:ra:gr:gg:gb:ga:br:bg:bb:ba:ar:ag:ab:aa

Каждое значение может варьироваться от 0.0 до 1.0

Фильтр применяет четыре линейных уравнения.

Предположим, что цвет входного пикселя RGBA равен (192,64,128,200) а выражение равно

colorchannelmixer=.3:.4:.3:0:.1:.54:.3:0:1:.2:.5

Таким образом, выходное значение R будет .3x192 + .4x64 + .3x128 + 0x200 = 121.6 => 122

Выходное значение G будет .1x192 + .54x64 + .3x128 + 0x200 = 92.16 => 92

Выходное значение B будет 1x192 + .2x64 + .5x128 + 0x200 = 268.8 => 255

(поскольку ba не установлена, используется значение по умолчанию 0. Так как результат переполняет максимальное значение, оно обрезается до максимального значения 255)

Выходное значение A будет 0x192 + 0x64 + 0x128 + 1x200 = 200 => 200

(поскольку ни одно из ar:ag:ab:aa не задано, используется значение по умолчанию 0:0:0:1 )

0

Пожалуйста, прочтите документацию подробно. Всего фильтр принимает 16 вариантов. Для каждого выходного канала (R, G, B и альфа) у вас есть четыре входных канала (R, G, B и альфа). Каждый параметр устанавливает вклад каждого входного канала в каждый выходной канал.

Если вы не укажете параметр, его значение будет установлено по умолчанию (1 для входных цветовых каналов, 0 для входных альфа-каналов). Вот почему необходимо указывать 11 из 16 вариантов, если у вас есть RGB-видео без альфа-каналов.

Итак, эти параметры:

.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131

можно прочитать как:

.393 → amount of input R in output R channel
.769 → amount of input G in output R channel
.189 → amount of input B in output R channel
0    → amount of input A in output R channel
--------------------------------------------
.349 → amount of input R in output G channel
.686 → amount of input G in output G channel
.168 → amount of input B in output G channel
0    → amount of input A in output G channel
--------------------------------------------
.272 → amount of input R in output B channel
.534 → amount of input G in output B channel
.131 → amount of input B in output B channel

Остальные значения установлены по умолчанию, что означает, что количество входного альфа в выходной канал B равно нулю. Также применяются настройки по умолчанию для выходного альфа-канала.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .