pythonrgb函数_Python是否有一个函数或公式可以找到rgb代码的互补色?

这篇博客介绍了如何在Python中直接计算RGB颜色的互补色,提供了一个名为`complement`的函数,该函数使用排序网络算法进行颜色组件排序,并通过取和减运算得到互补色。还给出了一个使用PIL库和Numpy实现的图像互补色处理示例,Numpy版本的实现速度更快。
摘要由CSDN通过智能技术生成

下面是如何直接计算RGB颜色的补色。它给出的结果与使用colorsys的算法相同,如Iva Klass的答案所示,但在我的测试中,它大约快了50%。请注意,它适用于任何RGB方案,不管RGB组件是整数还是浮点(只要每个组件使用相同的范围!)。在

函数hilo实现了一个简单的sorting network来对RGB组件进行排序。在# Sum of the min & max of (a, b, c)

def hilo(a, b, c):

if c < b: b, c = c, b

if b < a: a, b = b, a

if c < b: b, c = c, b

return a + c

def complement(r, g, b):

k = hilo(r, g, b)

return tuple(k - u for u in (r, g, b))

下面是一个简短的演示,使用PIL/枕头。在

^{pr2}$

输入图像

JM4F2.png

输出图像

J0gXd.png

这是一个Numpy版本complement_image。在我的机器上,它处理“眼镜”图像的速度比前一个版本快3.7倍。在import numpy as np

def complement_image(iname, oname):

print('Loading', iname)

img = Image.open(iname)

#img.show()

in_data = np.asarray(img)

#print(in_data.shape)

print('Complementing...')

lo = np.amin(in_data, axis=2, keepdims=True)

hi = np.amax(in_data, axis=2, keepdims=True)

out_data = (lo + hi) - in_data

out_img = Image.fromarray(out_data)

#out_img.show()

out_img.save(oname)

print('Saved to', oname)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值