Files
CavinHuang-comfyui-nodes-docs/docs/ImageColorToMask.md
2024-05-15 08:09:49 +08:00

2.0 KiB

Documentation

ImageColorToMask节点旨在将彩色图像根据指定的颜色转换为二进制掩码。它通过识别图像中与给定颜色匹配的像素,并将这些像素转换为掩码,从而突出显示感兴趣的区域。该节点在需要基于颜色的掩码的应用中发挥着关键作用,例如在目标检测和分割中。

Input types

Required

  • image
    • 'image'参数是节点将处理的输入彩色图像。它是节点操作的基本,因为这是派生掩码的来源。图像的内容直接影响掩码的准确性和最终输出。
    • Comfy dtype: IMAGE
    • Python dtype: torch.Tensor

Optional

  • color
    • 'color'参数定义了图像中应转换为掩码的特定颜色。它是一个关键参数,因为它决定了哪些像素将包含在最终掩码中。颜色以数值格式指定,允许精确定位所需的色调。
    • Comfy dtype: INT
    • Python dtype: int

Output types

  • mask
    • 'mask'输出是输入图像的二进制表示,其中指定的颜色已被转换为掩码。它很重要,因为它为感兴趣的区域与图像的其余部分提供了清晰的划分,可以用于进一步的分析或处理。
    • Comfy dtype: MASK
    • Python dtype: torch.Tensor

Usage tips

  • Infra type: GPU

Source code

class ImageColorToMask:

    @classmethod
    def INPUT_TYPES(s):
        return {'required': {'image': ('IMAGE',), 'color': ('INT', {'default': 0, 'min': 0, 'max': 16777215, 'step': 1, 'display': 'color'})}}
    CATEGORY = 'mask'
    RETURN_TYPES = ('MASK',)
    FUNCTION = 'image_to_mask'

    def image_to_mask(self, image, color):
        temp = (torch.clamp(image, 0, 1.0) * 255.0).round().to(torch.int)
        temp = torch.bitwise_left_shift(temp[:, :, :, 0], 16) + torch.bitwise_left_shift(temp[:, :, :, 1], 8) + temp[:, :, :, 2]
        mask = torch.where(temp == color, 255, 0).float()
        return (mask,)