Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing YUV格式反转颜色_Image Processing_Yuv - Fatal编程技术网

Image processing YUV格式反转颜色

Image processing YUV格式反转颜色,image-processing,yuv,Image Processing,Yuv,我有在YUV的图像,我想得到与反转颜色的图像。如果我不想使用convert to RGB,如何获得YUV的反转颜色?我推导了公式: 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'形成相反的颜色。在经验层面上,使用安装在大多数Linux发行版上并可用于macOS和Windows的ImageMagick,您似乎需要: Y' = 255 - Y U' = 2

我有在YUV的图像,我想得到与反转颜色的图像。如果我不想使用convert to RGB,如何获得YUV的反转颜色?

我推导了公式:

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'形成相反的颜色。

在经验层面上,使用安装在大多数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

什么是反转颜色?在RGB中是(255-R,255-G,255-B),我认为所有的数字都应该是
255