Можно применить временное и пространственное размытие к сегменту / сечению - предполагая, что область, которую вы хотите размыть, является статическим местоположением.
Оригинальное черное лабораторное изображение щенка.
Используя изображение маски
Оттенки серого PNG маскируют изображение и получаются размытые изображения.
Вы можете сделать изображение в градациях серого, чтобы указать область размытия. Для простоты использования он должен быть того же размера, что и изображение или видео, которые вы хотите размыть.
Белая область - это место, где будет происходить размытие, но это можно легко изменить с помощью фильтра отрицания, например:[1:v]negate[mask];[0:v][mask]alphamerge,boxblur=10[alf]...
Вы можете использовать фильтр geq для создания маски, такой как градиент.
Примечание. Числа смещений x и y в оверлее ( 60и 30в этом примере) должны соответствовать смещениям обрезки.
Что делает этот пример:
Обрежьте копию, чтобы получить размер области, которая будет размыта. В этом примере: блок 200x200 пикселей, который составляет 60 пикселей вправо ( xось) и 30 пикселей вниз ( yось) от верхнего левого угла.
Размыть обрезанную область.
Наложите размытую область, используя те же параметры xи yпараметры из фильтра обрезки .
Многократные размытия на определенных участках (без маски)
Размытые области вверху слева, около центра и снизу.
Спасибо большое за Ваш ответ. Это все имеет большой смысл. Как примечание, это также сделало разделенный фильтр наконец-то смыслом! Кроме того, возможно ли с помощью арифметических выражений динамически перемещать размытое поле вокруг изображения? IE с целью размывания чьего-то лица, когда они движутся нелинейно?
occvtech
Еще раз спасибо! Я возьму трещину в этом. Я знаю, что нелинейный редактор будет в 1000 раз проще, но я надеюсь, что пакетная обработка нескольких файлов и не хочу ждать через процесс импорта / ключевой кадр / экспорт. Еще раз спасибо!
occvtech
1
FFMPEG предлагает другие формы, кроме коробок, например, кружки?
Вс
@LordNeckbeard Я использую cmd, и я хочу использовать Пример 1, но когда я выполняю код, я получаю эту ошибкуUnrecognized option 'filter_complex[0:v]crop=200:200:60:30,boxblur=10[fg];[0:v][fg]overlay=60:30[v]-map [v] -map 0:a -c:v libx264 -c:a copy -movflags +faststart output.mp4'. Error splitting the argument list: Option not found
Джим
1
@ Джим Я заметил, что в моем примере команды отсутствовала кавычка. ffmpeg -i input.mp4 -filter_complex "[0:v]crop=200:200:60:30,boxblur=10[fg]; [0:v][fg]overlay=60:30[v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy -movflags +faststart output.mp4
Ваша
0
Для случая, когда кому-то не нравится острый край размытия, я создал скрипт, который разбивает слои на разные этапы размытия, чтобы край не был резким и выглядел так:
Вы можете изменить параметры в последней и предпоследней строках, последние два параметра между кавычками - это путь к вашему видео и выходное видео (при условии, что они помещены в рабочий каталог). В предпоследней строке:
первые два числа указывают размер начальной области, к которой будет применено максимальное размытие,
вторые два указывают их координаты x и y,
третьи два указывают время в секундах, когда следует применить размытие,
«25» в этом примере указывает, что будет накладываться 25 полей друг на друга)
следующая «1» означает, что большие поля с меньшим количеством размытия должны быть на один пиксель шире, чем их предшественники
вторая цифра «1» указывает, что размытие должно увеличиваться на единицу, пока не достигнет максимума 25 (сверху)
«30» указывает запас, который учитывается при применении размытия, поэтому увеличение этого значения делает размытие более относящимся к окружающей среде. Увеличение этого значения также решает ошибку в текстовом виде, какInvalid chroma radius value 21, must be >= 0 and <= 20
Запустив его, нужно получить вывод, подобный следующему (он записывается в файл, который можно запустить и распечатать на выходе, который можно скопировать и запустить):
Unrecognized option 'filter_complex[0:v]crop=200:200:60:30,boxblur=10[fg];[0:v][fg]overlay=60:30[v]-map [v] -map 0:a -c:v libx264 -c:a copy -movflags +faststart output.mp4'. Error splitting the argument list: Option not found
ffmpeg -i input.mp4 -filter_complex "[0:v]crop=200:200:60:30,boxblur=10[fg]; [0:v][fg]overlay=60:30[v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy -movflags +faststart output.mp4
Для случая, когда кому-то не нравится острый край размытия, я создал скрипт, который разбивает слои на разные этапы размытия, чтобы край не был резким и выглядел так:
Вместо этого:
Это скрипт на Python:
Вы можете изменить параметры в последней и предпоследней строках, последние два параметра между кавычками - это путь к вашему видео и выходное видео (при условии, что они помещены в рабочий каталог). В предпоследней строке:
Invalid chroma radius value 21, must be >= 0 and <= 20
Запустив его, нужно получить вывод, подобный следующему (он записывается в файл, который можно запустить и распечатать на выходе, который можно скопировать и запустить):
источник