Фильтры для обработки изображения |
|
Levels
Levels(clip,input_low,gamma,input_high,output_low,output_high)
|
Фильтр Levels настраивает яркость, контраст и гамму. Параметры input_low и
input_high определяют какое входное значение пикселя
воспринимается как
чисто чёрный и чисто белый; параметры output_low и output_high определяют выходные значения
соответствующие чёрному и белому; и параметр gamma контролирует степень нелинейности в преобразовании.
Более точно функция конвертации следующая:
|
|
|
Это один из фильтров, для которых на самом деле неплохо
было бы иметь
графический интерфейс (GUI). Так как сделать GUI не
представляется возможным, фильтр сделан совместимым с аналогичным фильтром
VirtualDub. Вы можете брать числа из диалога настройки фильтра
"Levels" в VirtualDub и подставлять их в качестве
параметров фильтра Levels в AVISynth получая
те же результаты.
|
|
Работая в пространстве цвета YUY2, Levels выполняет
корректировку только для яркостной составляющей, не для цветовой.
Gamma-коррекция, вообще говоря, концепция цветового пространства RGB, и
неясно, как выполнить её правильно в YUY2. Однако, если gamma=1.0,
фильтр должен иметь одинаковый эффект как в RGB, так и в YUY2
режимах.
|
|
Примеры |
# нулевой эффект
Levels 0,1,255,0,255
# gamma-корректировка для отображения в ярком окружении
Levels 0,1.3,255,0,255
# инвертирует изображение (делает фото-негатив)
Levels 0,1,255,255,0
|
|
|
Blur / Sharpen
Blur(clip,amount)
Sharpen(clip,amount)
|
Фильтр использует простую 3x3 размывающую или обостряющую матрицу весов
пикселов. Наибольший допустимый аргумент для Blur около 1.58,
который соответствует равномерному размытию 3x3 пикселя. Значение 1.0 даёт вам веса
пикселов (1/4, 1/2, 1/4). Если вам требуется Гауссовское размытие большего
радиуса, примените несколько копий Blur(1.0) последовательно.
|
|
Отрицательные значения для Blur на самом деле повышают резкость
изображения, и фактически Sharpen просто псевдоним для Blur(-
n) . Наименьшее допустимое значение для Blur - -1.0, и
наибольшее для Sharpen - 1.0
|
|
|
SpatialSoften / TemporalSoften
SpatialSoften(clip,radius,luma_threshold,chroma_threshold)
TemporalSoften(clip,radius,luma_threshold,chroma_threshold)
|
Фильтры SpatialSoften и TemporalSoften удаляют шум
из видео-клипа выборочно смешивая пиксели. Это фильтры могут творить чудеса, и
весьма рекомендуется попытаться использовать их. Но они
также могут стереть
мелкие детали если пороги слишком высоки, поэтому не перестарайтесь. И они
очень медленны, особенно с большими значениями радиуса, поэтому не
включайте их
до тех пор, пока всё остальное не будет готово.
|
|
SpatialSoften заменяет каждый пиксель в кадре средним всех
соседних выборок отличающихся от центральной выборки не более чем на указанное
пороговое значение. "Соседний" значит пиксель не далее чем на +/- radius
в направлениях X и Y. Пороги используются как luma_threshold для
Y (яркостной составляющей) выборок, и chroma_threshold для
U и V (цветовой составляющей) выборок.
|
|
TemporalSoften аналогичен, исключая то, что он просматривает
один и тот же пиксель в соседних кадрах. Используются все кадры не далее чем на
+/- radius отстоящие от центрального. Этот фильтр не выглядит
столь же эффективным, как SpatialSoften .
|
|
Рекомендуется "поиграть" с параметрами для этих фильтров, чтобы получить
представление о том, что они делают - к примеру попробуйте установить одному из
трёх параметров очень высокое значение, оставляя другие с низким, и смотрите
что выйдет. Помните, что установка любого из параметров в 0.0 станет причиной
очень медленного ничего-ни-делания.
|
|
В AVISynth, SpatialSoften и
TemporalSoften работают только в пространстве цвета YUY2.
Можно использовать ConvertToYUY2 фильтр если исходный видео-клип не
в YUY2 формате.
|
|
|
FixLuminance
FixLuminance(clip,intercept,slope)
|
Видеомагнитофон иногда имеет раздражающую привычку повышать яркость снизу в
верх у каждого кадра. Цель этого фильтра последовательное затемнение верха
изображения для компенсации. Если с вашим видеомагнитофоном
всё в порядке,
можете считать что этого фильтра нет.
|
|
Этот фильтр работает только в цветовом пространстве YUY2.
|
|
|
FixBrokenChromaUpsampling
FixBrokenChromaUpsampling(clip)
|
Замечено, что MS DV кодек обрабатывает цветовые каналы неверно, что
может быть компенсировано фильтром FixBrokenChromaUpsampling . Вы
должны поместить его после DirectShowSource , в случае использования
MS DV кодека, или если вы заметите грязные линии появляющиеся в
чересстрочных изображениях.
|
|
|
Letterbox
Letterbox(clip,top,bottom)
|
Letterbox просто зачерняет верхние top и нижние
bottom строки каждого кадра. Фильтр применим в двух случаях: во-первых
он может убрать паразитный шум видео с существующих чёрных полос изображения;
во-вторых он может убрать замусоренные строки, часто возникающие внизу кадра
при захвате с плёнок VHS
|
|
Действие Letterbox может быть повторено комбинацией фильтров
Crop и AddBorders , но Letterbox быстрее и
проще
|
|
Обычно, лучше обрезать фильтром Crop или CropBottom
чем прятать используя Letterbox . Однако, в некоторых случаях,
особенно если вы кодируете в MPEG, лучше использовать Letterbox ,
что позволяет сохранять стандартные размеры кадра, такие как 352x288 или
320x240. Некоторые MPEG проигрыватели не понимают
видео имеющее
нестандартный размер кадра.
|
|
|
Subtitle
Subtitle(clip,"text",x,y,first-frame,last-frame,"font-name",point-size[,text-color[,halo-color]])
Subtitle(clip,"text")
|
Фильтр Subtitle добавляет строку сглаженного текста в
последовательность кадров. Если вы желаете более одно субтитра, или
субтитр содержащий более одной строки, вы должны сцепить вместе несколько
фильтров Subtitle . Этот фильтр очевидно неприменим для
чего-то большего, чем случайное использование.
|
|
Цвет текста и ореола должны быть заданы как
шестнадцатеричное RGB
значение, как в HTML, не считая того, что начинается оно с $
вместо #. (# Используется для комментирования).
|
|
Альтернативная, краткая форма полезна когда вас не беспокоит, как
выглядят субтитры до тех пор, пока вы их видите. К примеру, когда вы
используете фильтр StackVertical , который покажет несколько
вариантов кадра сразу, и желаете пометить их, чтобы помнить что есть что.
|
|
AVISynth использует фильтр внутри для метода Version и
для вывода сообщений об ошибках. Ещё механизм субтитров используется в
ShowFrameNumber .
|
|
|
PeculiarBlend
PeculiarBlend(clip,cutoff)
|
Фильтр смешивает каждый кадр с последующим особым образом. Часть кадра ниже
cutoff строк не изменяется. Часть выше cutoff-30 строк заменяется
соответствующей частью следующего кадра. 30 строк в середине смешиваются
последовательно, чтобы скрыть переключение кадров.
|
|
Может возникнуть вопрос, кому нужен этот фильтр.
Что ж, дело вот в чём. Ко
многим видео-клипам исходно снятым на плёнку применена техника 3:2 pulldown,
описанная в описании фильтра Pulldown . Однако некоторые
используют более неприятную систему в которой пересечение со следующим кадром
происходит в середине поля. Другими словами индивидуальные поля как один кадр
фильма вверху и другой внизу. Этот специфический
эффект фильтр частично
исправляет. Он должен использоваться после или до фильтра Pulldown .
Чтобы определить cutoff, изучите смешанный таким образом кадр и
установите cutoff в номер первой строки, где вы заметите смешивание.
|
|
В AVISynth, фильтр работает только в пространстве цветов
YUY2. Можно использовать фильтр ConvertToYUY2 если
источник не YUY2.
|
|
|
|