Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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
Algorithm 异或与颜色反转?_Algorithm - Fatal编程技术网

Algorithm 异或与颜色反转?

Algorithm 异或与颜色反转?,algorithm,Algorithm,什么是颜色反转算法?我们如何实施这一点 比如说 Black->White Blue->Yellow 您可以这样做: RInv = 255 - R GInv = 255 - G BInv = 255 - B 可以使用XOR进行以下操作: RInv = R xor 255 GInv = G xor 255 BInv = B xor 255 异或之所以有效,是因为我们希望R和RInv之和等于255: RInv = 255 - R => RInv + R = 255 由于二进

什么是颜色反转算法?我们如何实施这一点

比如说

Black->White
Blue->Yellow
您可以这样做:

RInv = 255 - R
GInv = 255 - G
BInv = 255 - B
可以使用XOR进行以下操作:

RInv = R xor 255
GInv = G xor 255
BInv = B xor 255
异或之所以有效,是因为我们希望R和RInv之和等于255:

RInv = 255 - R
=> RInv  + R = 255
由于二进制数上的异或是伽罗瓦域mod 2上的加法,我们得到:

C = A xor B
=> C xor B = A xor B xor B = A
RInv = 255 xor R
RInv xor R = 255

哪个颜色空间?RGB?虽然这两种方法是等效的,但传统上使用xor是因为它在较旧的CPU上速度更快。