跳转至

AdjustMaskSize 视频蒙版边界膨胀与腐蚀收缩节点

节点核心功能 (What is it?)

AdjustMaskSize 节点通过对视频的每一帧独立执行数学形态学运算(Morphological Operations),对蒙版视频(Mask Video)的白区轮廓执行亚像素级外扩膨胀(Dilation)或内缩腐蚀(Erosion)。它在精确保持原视频分辨率、帧率及时间长度的前提下,平滑修整或精细控制蒙版遮罩的覆盖范围。

典型适用场景 (When would I use it?)

在以下情况下使用 AdjustMaskSize 节点:

  • 外扩蒙版边界以覆盖更多主体周围的边缘过渡区域(膨胀 Dilation);
  • 收缩蒙版以剥离杂乱毛刺、抠像绿边或误识别的边缘噪点伪影(腐蚀 Erosion);
  • 对来自 SAM(Segment Anything)或 YOLO 视频跟踪算法输出的初步分割蒙版进行精细化轮廓修整;
  • 以绝对像素量精准控制遮罩覆盖半径。

使用指南 (How to use it)

基础配置流程 (Basic Setup)

  1. 在工作流画布中添加 AdjustMaskSize 节点。
  2. 将待修整的蒙版视频源连接至 mask_video 输入插槽。
  3. 调节 adjustment 滑块设置所需膨胀或收缩的像素量。
  4. 执行工作流,修整后的蒙版视频即刻生成。

参数输入插槽 (Parameters)

  • mask_video:待调整尺寸的目标蒙版视频(支持 VideoArtifact 与 VideoUrlArtifact)。
  • adjustment:蒙版尺寸的像素级调节量(取值范围:-25 至 +25 像素,默认值:0):
    • 正值(1 至 25):外扩蒙版边界(膨胀 Dilation);
    • 负值(-25 至 -1):向内收缩蒙版边界(腐蚀 Erosion);
    • 零(0):透明直通穿透,跳过所有处理以节省算力。

输出引脚 (Outputs)

  • output_mask:完成形态学尺寸调整后的全新蒙版视频工件。

底层运作原理解析 (How it works)

节点在底层逐帧(Frame-by-Frame)执行形态学滤波:

  • 膨胀(正调节量,Dilation):应用最大值滤波(Maximum Filter)。蒙版中的每一个白色像素均使用圆形结构核(Circular Kernel)向外均匀扩张指定的像素半径;
  • 腐蚀(负调节量,Erosion):应用最小值滤波(Minimum Filter)。蒙版中的每一个白色像素均向内收缩指定的像素半径;
  • 零调节量(Zero Adjustment):当值为 0 时,节点零开销直通返回输入视频,避免无谓的编解码开销;
  • 各向同性圆形结构核:采用圆形卷积核,杜绝十字或矩形核带来的斜角失真,保证在 360 度所有方向上均匀自然扩散。

典型示例 (Example)

1. 向外扩充 5 像素蒙版

  1. 将上游分割出的蒙版视频连入 mask_video。
  2. 将 adjustment 设为 5。
  3. 执行工作流,输出蒙版的边缘在各个方向上均向外平滑外扩了 5 个像素,确保完全包覆目标主体。

2. 向内收缩 3 像素剥离绿幕边缘

  1. 将抠像蒙版接入 mask_video。
  2. 将 adjustment 设为 -3。
  3. 执行工作流,彻底切除外层残留的 3 像素杂色边缘。

关键技术特性 (Important Notes)

  • 底层结合 FFmpeg 帧管线与 PIL(Pillow)高效 MaxFilter / MinFilter 算法,处理迅速且显存占用极低;
  • 输入蒙版会在内部自动安全规范化为纯单通道灰度图;
  • 输出视频严格保持与输入完全一致的物理分辨率、帧率(FPS)与总帧数;
  • 面板自带百分比实时进度条指示(0–90% 帧处理,90–100% 视频重组封装)。