Размер ядра Ffmpeg Gaussian Filter (gblur)

305
Hannes M

Я применяю фильтр Гаусса к видео, используя gblur-фильтр ffmpeg . Фильтр принимает опцию sigma, но не позволяет выбрать размер ядра. Чтобы правильно сообщить о моем использовании размытия по Гауссу, я хотел бы знать, какой размер ядра используется в ffmpeg. (К вашему сведению, я использовал сигму = 0,5 и сигму = 0,8.)

Теперь этот вопрос StackExchange теоретически обсуждает связь между сигмой, радиусом и размером ядра. Если я правильно интерпретирую ответы, то радиус = 2 * сигма. А радиус - это количество пикселей в каждом направлении, которое использует фильтр Гаусса. Таким образом, kernel_size = ceil (радиус * 2 + 1). Например, если sigma = 0.5, то это ядро ​​3x3, а если sigma = 0.8, то ядро ​​5x5.

С другой стороны, Википедия говорит: «Как правило, программе обработки изображений нужно только вычислить матрицу с размерами ceil (6 * sigma) x ceil (6 * sigma), чтобы обеспечить результат, достаточно близкий к результату, полученному по всему распределению Гаусса. " Таким образом, опять же, если sigma = 0.5, то это ядро ​​3x3, а если sigma = 0.8, то это ядро ​​5x5.

Тем не менее, я нашел научную статью под названием « Видеомаркировка видео низкой сложности в сжатой области H.264 », которая противоречит предыдущим утверждениям. Авторы утверждают, что использовали фильтр Гаусса 5x5 с сигмой = 0,3 и сигмой = 0,4 (в таблице III и таблице IV). Но для этих сигм я бы ожидал размер ядра 3х3?

Короче говоря, я запутался в том, как вычесть размер ядра, используемый в ffmpeg, хотя я могу изменить только сигму. Я также не стал мудрее, прочитав исходный код ffmpeg gblur . Есть ли кто-то, кто может дать мне ясность по этому вопросу? Заранее спасибо!

0

0 ответов на вопрос

Похожие вопросы