![]() |
Справка по расширению «Избирательное масштабирование» |
Извините, но русская версия справки не учитывает новшества версии 0.6.0. Обновление будет в 0.6.2. Расширение «Избирательное масштабирование» является реализацией алгоритма, известного под названием «вырезание швов» (seam carving) и разработанного Шаи Авиданом (Shai Avidan) и Ариэлем Шамиром (Ariel Shamir). Результатом действия эффекта является такое изменение размера изображения, при котором значимые объекты не растягиваются вовсе, в то время как незначимые объекты безопасно растягиваются или сужаются, либо вовсе удаляются из изображения. При помощи расширения изображения можно как увеличивать, так и уменьшать, но увеличение дает более качественные результаты в том случае, если выполняется в несколько этапов. Для выбора значимых объектов, которые не должны быть так или иначе деформированы, либо незначимых объектов, которые нужно удалить, в качестве масок используются вспомогательные слои. Более подробная справка по технологии приведена в разделе «Приложение: краткое описание техники вырезания швов» в конце. Расширение работает как с активным слоем, так и с плавающим выделением. Оно также может работать с несколькими слоями через расширение "Filter all layers" и использовать GIMP Animation Package для обработки видео. «Избирательное масштабирование» обрабатывает только слои целиком, поэтому если в слое есть выделение, оно сохраняется в канал и удаляется. Если же у слоя есть маска полупрозрачности, вы можете выбрать способ ее обработки (применить или удалить). Описание пользовательского интерфейса
Выбор новой ширины и высоты
В этой части диалога выбирается новый размер изображения и режим
масштабирования. Рекомендуется всегда масштабировать только в одном
направлении за раз. Если пользователем запрошена смена и ширины, и высоты,
по умолчанию первой меняется ширина. Этот порядок может быть изменен на
вкладке «Дополнительно».
Две кнопки справа от полей ввода ширины и высоты позволяют сбрасывать
измененные значения до исходного состояния (по размеру изображения) и
менять их на последнее использованное значение.
По умолчанию выполняется простое контекстно-зависимое масштабирование
до нужного размера. При желании после избирательного масштабирования
можно сделать простое или избирательное масштабирование обратно до
исходного размера изображения. Это полезно в тех случаях, когда расширение
используется для удаления незначимых объектов.
Обратите внимание на то, что конечный размер изображения при удалении может быть определен автоматически. Подробности приведены ниже. Маски объектовКраткое руководствоСамый простой способ вручную выбрать значимые или незначимые объекты, которые вы хотите оставить неизменными или, соответственно, удалить:
Если вы хотите удалить части изображения, вы можете выбрать направление масштабирования (горизонталь или вертикаль), а затем нажать кнопку «Авторазмер» для автоматического определения конечного размера изображения (очень хорошо работает только с очень простыми масками). Примечание №1: удаление объектов работает только при уменьшении размера изображения. При увеличении размера изображения маски удаляемых незначимых объектов всегда игнорируются; в противном случае замаскированные области оказались бы раздутыми, а не удаленными. Но если именно того вам и надо, на вкладке «Дополнительно» снимите флажок с параметра «Игнорировать маски удаляемых объектов при увеличении». Примечание №2: сохранение значимых объектов невозможно при слишком большом увеличении, поскольку процесс увеличения объектов является обратной копией уменьшения, так что максимальное количество пикселов, которые можно добавить в слой, соответствует количеству несохраняемых пикселов. К примеру, у вас есть изображение размером 1000 пикселов в ширину, где область шириной в 800 пикселов вы пометили для защиты. В этом случае конечная ширина должна быть менее 1200 пикселов. Если вы хотите увеличить изображение еще больше, сделайте это в несколько шагов. Полное описание
В разделе «Маска сохраняемых значимых объектов» вы можете указать,
какие области изображения необходимо оставить неизменными, выставив флажок
напротив «Сохранить объекты» и выбрав слой, в котором нарисована
маска сохраняемых объектов.
По нажатию кнопки «Создать слой» создается новый слой с альфа-каналом,
50% прозрачностью и говорящим названием («Имя_предыдущего_слоя - маска
сохранения»). Этот новый слой автоматически выбирается слоем с маской
(с плавающим выделением это не сработает, поскольку в этом случае GIMP не даст
работать с другими слоями). Кроме того, цвет переднего плана будет временно
изменен на светло-зеленый (который переключится обратно по закрытии диалога).
Интенсивность эффекта маски в каждом пикселе получается как усредненное
значение каждого из цветовых каналов пиксела, помноженное на значение
альфа-канала. Таким образом, для слоя в RGB с альфа-каналом максимальное
значение будет с белыми пикселами, в то время как черные и прозрачные
пикселы будут проигнорированы.
В целом, рекомендуется использовать для маски только один цвет и, при
необходимости, корректировать силу эффекта значением непрозрачности вместо
светлоты или насыщенности.
Размер и положение выбранного слоя с маской может быть совершенно
произвольным. Расширение будет учитывать только ту часть слоя, которая
пересекается со слоем, чей размер меняется.
Ползунок «Сила» может быть использован в качестве глобального
модулятора сохранения значимых объектов. Обратите внимание на то, что
более тонким выделениям (в смысле смены размера) нужно более высокое
значения силы, и наоборот.
Раздел «Маска сохраняемых значимых объектов» практически идентичен
предыдущему, но производимый эффект ровно обратный, а используемый для
масок цвет — светло-красный.
Кроме того, в нем есть кнопка «Авторазмер», при помощи которой
выполняется простое удаление объектов. Когда эта кнопка нажимается,
расширение пытается рассчитать, насколько именно нужно изменить размер
изображения, чтобы удалить помеченные маской объекты, и само подставляет
нужный конечный размер (в разделе «Выбор новой высоты и ширины»).
При использовании этой функции всегда будет выполняться однонаправленное
масштабирование — либо горизонтальное (меняющее ширину и
устанавливающее высоту в исходное значение), либо вертикальное (меняющее
высоту и устанавливающее ширину в исходное значение); направление
выбирается в раскрывающемся списке справа.
Обратите внимание на то, что этот параметр подходит только для очень
простых случаев. Со сложными масками может ничего не получиться.
[Техническая информация: конечный размер определяется простым вычислением максимального числа пикселов в строке,
для которой значение маски выше заданного порога, который равен 50% полного
цвета в RGB (т.е. по умолчанию это красный).]
Вывод
На этой вкладке сгруппированы параметры, касающиеся вывода расширения.
Дополнительно
На этой вкладке расположены параметры, позволяющие изменить поведение расширения.
Использования этого расширения для редактирования видео и анимацииИспользование расширения с GAPРасширение можно использовать вместе с GIMP Animation Package (GAP) для избирательного масштабирования всех кадров в видеофайле (инструкции по использованию GAP распространяются вместе с GAP). Стоит обратить внимание на то, что GAP позволяет лишь выбрать активный слой, но для избирательного масштабирования могут понадобиться дополнительные слои (слои масок). Это ограничение обходится согласованным именованием вспомогательных слоев. Таким образом если вы хотите использовать маску сохранения значимых объектов в каждом кадре, название каждого слоя с маской должно соответствовать названию изменяемого слоя. То же касается масок, помечающих удаляемые объекты и масок прямоты.
Чтобы применить «Избирательное масштабирование» ко всем кадрам, в меню
"Video" нужно выбрать пункт "Frame Modify",что приведет к
открытию диалога: в разделе "Function" выберите "Apply filter
on layer(s)", затем установите подходящие правила для диапазона слоев
и кадров и нажмите кнопку OK. Вслед за этим появится еще один диалог,
предлагающий выбрать фильтр. Выберите plug-in-lqr, затем выберите
"Apply constant" или "Apply varying".
В последнем случае диалог расширения появится дважды: первый раз —
для первого кадра, и второй — для последнего. Они устанавливают
экстремальные значения для всех варьирующихся параметров (размеры, силы,
прямота и пр.) и промежуточные значения, которые будут использованы в
промежуточных кадрах (например, если у первого кадра ширина равна 100%, а у
последнего — 110%, то при 11 кадрах ширина промежуточных кадров
будет равна 101%, 102%, 103% и т.д.). Тем не менее, все логические параметры,
которые или выключены, или включены (такие как порядок масштабирования,
названия вспомогательных слоев и пр.) будут взяты для всех промежуточных
кадров-слоев из последнего диалога.
Применение расширения ко всем слоям (к примеру, для анимации)Вы также можете применить расширение ко всем слоям заданного изображения (например, при редактировании анимации), используя параметр "Filter all layers..." из меню "Filters" и выбирая "plug-in-lqr" в диалоге, который появится вслед за тем. Здесь все работает по описанным выше правилам, но при использовании вспомогательных слоев-масок вы столкнетесь со сложностями, поскольку расширение будет применено и к ним. Приложение: краткое описание техники вырезания швовРасширение ищет в изображении так называемые швы, т.е. непрерывные зигзагообразные линии, пересекающие изображение сверху вниз (вертикальные швы) или слева направо (горизонтальные швы). Когда один такой шов, скажем, вертикальный, удаляется (вырезается) из изображения, ширина изображения сокращается на один пиксел. Удаление горизонтальных швов сокращает высоту. Повтор таких операций (нахождение и удаление швов) позволяет сокращать изображение по усмотрению пользователя. Результатом нахождения всех швов, которые можно вырезать из изображения, является так называемая карта швов. Обратным действием является вставка дополнительных швов вдоль уже найденных, что позволяет увеличивать изображение. Таким образом смысл карты швов становится ровно обратным. Для того, чтобы добиться хороших результатов, расширению необходимо найти наиболее подходящие швы, которые можно вырезать или вставить. Если целью применения расширения является изменение пропорций изображения, при котором значимые объекты своих пропорций не меняют, то «хорошими» швами будут те, которые эти объекты не пересекают, а проходят через «фон». По умолчанию расширение пытается найти швы, которые пересекают области с наименьшим контрастом (как именно это происходит, определяется выбором градиентной функции на вкладке «Дополнительно»). Для этого каждому пикселу изображения назначается так называемое «значение энергии»: чем выше контраст, тем выше энергия. Швы стремятся не пересекать области с высокой энергией. Поскольку во многих случаях этот простой способ, основывающийся на контрасте, не является оптимальным, энергетическая функция может быть «отклонена» пользователем, который может решать, какие области имеют большую энергию (используя маску сохранения значимых объектов), а какие — меньшую (используя маску удаления незначимых объектов). Таким образом пользователь может достаточно эффективно управлять швами и всем процессом. Маски прямоты работают примерно так же, но добавляемое ими отклонение энергии зависит не только от значения маски над каждым пикселом, но и от прямоты швов, пересекающих каждый пиксел. Всю картину можно представить себе следующим образом. Швы пытаются пересечь изображение от одной стороны к противоположной, сохраняя как можно меньшую энергию. Маски сохранения создают эффект гор на пути швов, которые заставляет швы огибать эту преграду. Маски удаления, в свою очередь, подобны долинам, которые привлекают швы. Маски прямоты выстраивают горные хребты между швами, делая их более прямыми. |