Files
@ 077600f0c5f8
Branch filter:
Location: OneEye/exp/colors.py - annotation
077600f0c5f8
1.1 KiB
text/x-python
engine v1 mostly finished
a7d4586e150c a0db29122ab6 a7d4586e150c a0db29122ab6 a0db29122ab6 a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a0db29122ab6 a0db29122ab6 a0db29122ab6 a0db29122ab6 a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a0db29122ab6 a7d4586e150c a7d4586e150c a7d4586e150c | import sys
# oops, actually we could use import colorsys
def hex2int(s):
return int(str(s),base=16)
def int2RGB(x):
r=(x>>16)&255
g=(x>>8)&255
b=x&255
return r/255, g/255, b/255
def _RGB2HC(r,g,b):
M=max(r,g,b)
m=min(r,g,b)
C=M-m
if C==0: H_=0
elif M==r: H_=(g-b)/C % 6
elif M==g: H_=(b-r)/C + 2
elif M==b: H_=(r-g)/C + 4
H=60*H_
return H,C
def RGB2HSV(r,g,b):
H,C=_RGB2HC(r,g,b)
V=max(r,g,b)
S=C/V if V!=0 else 0
return H,S,V
def RGB2HSL(r,g,b):
H,C=_RGB2HC(r,g,b)
L=(max(r,g,b)+min(r,g,b))/2
S=C/(1-abs(2*L-1)) if L!=1 else 0
return H,S,L
def RGB2HSI(r,g,b):
H,C=_RGB2HC(r,g,b)
I=(r+g+b)/3
S=1-min(r,g,b)/I
return H,S,I
if not len(sys.argv)>1:
sys.exit("no data file provided")
f=open(sys.argv[1])
data=[line.split() for line in f]
f.close()
print("img\tstate\thex\tR\tG\tB\tH\tSl\tL\tSv\tV\tSi\tI")
for rec in data:
color=hex2int(rec[2])
R,G,B=int2RGB(color)
H,Sl,L=RGB2HSL(R,G,B)
H,Sv,V=RGB2HSV(R,G,B)
H,Si,I=RGB2HSI(R,G,B)
args=[R,G,B,H,Sl,L,Sv,V,Si,I]
args=map(lambda x: round(x,3), args)
print(rec[0],rec[1],rec[2],*args,sep="\t")
|