Я пытаюсь использовать фильтр removelogo ffmpeg, нет синтаксической ошибки, но результат имеет какой-то странный пурпурный треугольник, где применяется маска.

Я использую следующую команду

ffmpeg -y -i sample_image.jpg -vf "removelogo=mask.png" test.jpg 

Вот файлы, используемые в команде.

sample_image.jpg mask.png test.jpg

1 ответ1

2

Это ограничение фильтра. Фильтр removelogo использует соседние пиксели для заполнения области, содержащей логотип. Ваша маска распространяется до самого края изображения, не оставляя соседних пикселей. Для достижения наилучших результатов вам нужно оставить немного места.

Поскольку логотипы обычно не расширяются до края изображения, если с помощью removelogo удалить фактический логотип и оставить достаточно места на краю, то с этой проблемой вы не столкнетесь.

В качестве альтернативы, если вам нужно расширить край, вы можете вместо этого попробовать фильтр delogo, но он не позволит вам использовать произвольную маску; только прямоугольные координаты. Или используйте комбинацию площадки, заливки и обрезки, но результаты могут быть неудовлетворительными (я не пробовал).


Оригинал с уродливым логотипом и маской "птичье дерьмо" с достаточным дополнением от края.


Результат removelogo фильтра.

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