Files
@ aeca91e58167
Branch filter:
Location: OneEye/exp/colors.py - annotation
aeca91e58167
1.1 KiB
text/x-python
exp: image color analysis
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")
|