【问题标题】:YUV format invertion colorsYUV 格式反转颜色
【发布时间】:2019-06-01 21:47:16
【问题描述】:

我在 YUV 中有图像,我想获得具有反转颜色的图像。如果我不想使用转换为 RGB,如何获得 YUV 的反转颜色?

【问题讨论】:

  • 什么是反色?
  • 在 RGB 中是 (255 - R, 255 - G, 255 - B)

标签: image-processing yuv


【解决方案1】:

在经验层面上,使用安装在大多数 Linux 发行版上并且可用于 macOS 和 Windows 的 ImageMagick,您似乎需要:

Y' = 255 - Y
U' = 255 - U
V' = 255 - V

所以,如果我制作一个 4x1 像素的迷你色样,像这样以 3 个相等的步骤从蓝色变为洋红色,并将其作为文本转储:

convert -size 4x1 gradient:blue-magenta -depth 8 -colorspace YUV txt:
# ImageMagick pixel enumeration: 4,1,65535,yuv
0,0: (7493.93,61340.8,26214)  #1DEF66  yuv(29,239,102)
1,0: (14022.1,58129.5,39648.7)  #37E29A  yuv(55,226,154)
2,0: (20550.2,54918.3,53083.4)  #50D6CF  yuv(80,214,207)
3,0: (27078.3,51707.1,66518)  #69C9FF  yuv(105,201,255)

如果我再拿同样的小色板并将其反转并在 YUV 中显示:

convert -size 4x1 gradient:blue-magenta -depth 8 -negate -colorspace YUV txt:
# ImageMagick pixel enumeration: 4,1,65535,yuv
0,0: (58041.1,4194.24,39321)  #E21099  yuv(226,16,153)
1,0: (51512.9,7405.46,25886.3)  #C81D65  yuv(200,29,101)
2,0: (44984.8,10616.7,12451.7)  #AF2930  yuv(175,41,48)
3,0: (38456.7,13827.9,-983.025)  #963600  yuv(150,54,0)

你可以看到所有的值都是255-previous

如果我做一个更彻底的测试并尝试不同的红黄色渐变:

convert -size 4x1 gradient:red-yellow -depth 8 -colorspace YUV txt:
# ImageMagick pixel enumeration: 4,1,65535,yuv
0,0: (19584.4,23133.9,73071.5)  #4C5AFF  yuv(76,90,255)
1,0: (32403.3,16820.7,61821.4)  #7E41F1  yuv(126,65,241)
2,0: (45222.2,10507.4,50571.2)  #B029C5  yuv(176,41,197)
3,0: (58041.1,4194.24,39321)  #E21099  yuv(226,16,153)

同样如此,但倒置了:

convert -size 4x1 gradient:red-yellow -depth 8 -negate -colorspace YUV txt:
# ImageMagick pixel enumeration: 4,1,65535,yuv
0,0: (45950.6,42401.1,-7536.52)  #B3A500  yuv(179,165,0)
1,0: (33131.7,48714.4,3713.65)  #81BE0E  yuv(129,190,14)
2,0: (20312.8,55027.6,14963.8)  #4FD63A  yuv(79,214,58)
3,0: (7493.93,61340.8,26214)  #1DEF66  yuv(29,239,102)

同样,结果值都是255-previous

【讨论】:

    【解决方案2】:

    我推导出公式:

    Y' = 251 - Y
    U' = 256 - U
    V' = 256 - V
    

    所以如果 YUV -> RGB 和 Y'U'V' -> R'G'B' 那么 R + R' = G + G' = B + B' = 255. 和 Y'U'V' 形式反色。

    【讨论】:

    • 我认为你所有的号码都应该是255
    猜你喜欢
    • 2021-10-27
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 2011-04-26
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多