Separate Masks(SeparateMasks)
Этот узел реализован на основе библиотек компьютерного зрения (например, OpenCV) и определяет независимые связанные области путём обнаружения контуров во входной маске.
Separate Masks
Узел Separate Masks, реализованный на основе библиотек компьютерного зрения (таких как OpenCV), идентифицирует отдельные связные области путём обнаружения контуров во входной маске.
Узел Separate Masks: это инструмент для обработки масок, основная функция которого заключается в разделении входной маски, содержащей несколько несвязных областей, на несколько независимых масок в соответствии с заданными условиями. Он идентифицирует связные области в маске, выполняет их фильтрацию и сегментацию на основе размера или формы, тем самым упрощая управление сложными областями маски и последующие операции.
Функциональность узла
Этот узел, реализованный на основе библиотек компьютерного зрения (таких как OpenCV), идентифицирует отдельные связные области путём обнаружения контуров во входной маске. Он предоставляет три режима разделения (convex_polygons, area, box), каждый из которых использует разные алгоритмы для обработки и вывода масок. Результатом работы узла является пакет, содержащий несколько независимых масок, что удобно для их раздельного использования в рабочем процессе.
Описание параметров узла - Separate Masks
Входы (Inputs)
| Имя параметра | Тип данных | Обязательный | Значение по умолчанию | Диапазон значений/Опции | Описание |
|---|---|---|---|---|---|
mask | MASK | Да | - | - | Входная маска, которую необходимо разделить. |
Параметры (Parameters)
| Имя параметра | Тип данных | Обязательный | Значение по умолчанию | Диапазон значений/Опции | Описание |
|---|---|---|---|---|---|
mode | COMBO | Да | convex_polygons | "convex_polygons", "area", "box" | Режим разделения: convex_polygons (аппроксимация выпуклыми многоугольниками), area (фильтрация на основе размера области), box (фильтрация на основе размера ограничивающего прямоугольника). |
size_threshold_width | INT | Да | 256 | 0.0 - 4096 (шаг: 1) | Устанавливает пороговое значение по ширине для фильтрации областей. Диапазон от 0 до 4096, шаг 1. |
size_threshold_height | INT | Да | 256 | 0.0 - 4096 (шаг: 1) | Устанавливает пороговое значение по высоте для фильтрации областей. Диапазон от 0 до 4096, шаг 1. |
max_poly_points | INT | Да | 8 | 3 - 32 (шаг: 1) | Определяет максимальное количество вершин многоугольника для аппроксимации контура в режиме convex_polygons. Диапазон от 3 до 32, шаг 1. |
Выходы (Outputs)
| Имя параметра | Тип данных | Описание |
|---|---|---|
| mask | MASK | Выводит несколько независимых масок, полученных в результате разделения. |
Сценарии использования
Этот узел очень полезен в рабочих процессах редактирования изображений или генерации для конкретных областей. Например, если у вас есть семантическая маска сегментации, содержащая несколько разрозненных объектов, вы можете использовать этот узел, чтобы разделить каждый объект на независимую маску, а затем применить к каждому объекту различные узлы обработки изображений (например, перерисовку, раскрашивание или преобразование стиля), обеспечивая детальный контроль.
Примечания
Обратите внимание, что эффективность разделения узла зависит от качества и связности входной маски. Для областей с размытыми краями или сильным слиянием разделение может быть недостаточно точным. Кроме того, параметр max_poly_points влияет на точность в режиме аппроксимации многоугольником и должен быть настроен в соответствии с требуемым уровнем детализации.
Ссылка на исходный код узла Separate Masks
Узел Separate Masks взят из пакета узлов ComfyUI-KJNodes.
Комментарии
Войдите через GitHub, чтобы участвовать в обсуждении.