Returns:
torch.Tensor: YUV version of the image.
See :class:`~kornia.color.RgbToYuv` for details.
if not torch.is_tensor(input):
raise TypeError("Input type is not a torch.Tensor. Got {type(input)}")
if not(len(input.shape) == 3 or len(input.shape) == 4):
raise ValueError(f"Input size must have a shape of (*, 3, H, W) or (3, H, W). Got {input.shape}")
if input.shape[-3] != 3:
raise ValueError(f"Expected input to have 3 channels, got {input.shape[-3]}")
r, g, b = torch.chunk(input, chunks=3, dim=-3)
y: torch.Tensor = 0.299 * r + 0.587 * g + 0.114 * b
u: torch.Tensor = -0.147 * r - 0.289 * g + 0.436 * b
v: torch.Tensor = 0.615 * r - 0.515 * g - 0.100 * b
yuv_img: torch.Tensor = torch.cat((y, u, v), -3)
return yuv_img
After Change
u: torch.Tensor = -0.147 * r - 0.289 * g + 0.436 * b
v: torch.Tensor = 0.615 * r - 0.515 * g - 0.100 * b
out: torch.Tensor = torch.cat([y, u, v], -3)
return out