Files
@ 6f9ec51a8142
Branch filter:
Location: OneEye/exp/colors.py - annotation
6f9ec51a8142
1.1 KiB
text/x-python
moving responsibilities
GUI got its own ImageAnalyzer instance for doing previews
accordingly changed APIs to keep only useful messages
ImageAnalyzer params wrapped in a separate class
GUI got its own ImageAnalyzer instance for doing previews
accordingly changed APIs to keep only useful messages
ImageAnalyzer params wrapped in a separate class
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")
|