import numpy as np
import cv2
from PARAM import *

def color(cap):
    XC=int(Lx/2); YC=int(Ly/2)
    t=0
    while t < 24:
        ret,frame = cap.read(); t+=1
        if(ret==False): print('ret=',ret); break
        img3=frame[YC:YC+10,XC:XC+10,:]
        #print(img3)
        a=np.arange(3)
        for n in range(3): a[n]=int(np.average(img3[:,:,n:n+1]))
        s0=np.average(img3[:,:,0])
        s1=np.average(img3[:,:,1])
        s2=np.average(img3[:,:,2])
        print('s0,1,2=',s0,s1,s2)
        a1=np.arange(3)
        b1=np.sort(a)
        b2=np.lexsort((a1,a))
        b3=np.array([0,0,0])
        for k in range(3): b3[b2[k]]=k
        print(a,a1,b1,b2,b3)
        r1=round(float(a[b2[0]])/float(a[b2[2]]),2); 
        r2=round(float(a[b2[1]])/float(a[b2[2]]),2); 
        print(t,'focus:a,r1,r2,b3=',a,r1,r2,b3)
        cv2.circle(frame,(XC,YC), 10, (0, 155, 255), 2)
        cv2.imshow('frame',frame)
        cv2.waitKey(0)
        if cv2.waitKey(1) & 0xFF == ord('q'): break
    cv2.destroyAllWindows()
    return a,r1,r2,b3

if(1==1):
    from time import sleep
    cap=cv2.VideoCapture(0)
    cap.set(cv2.CAP_PROP_FRAME_WIDTH, Lx)
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, Ly)
    sleep(2)
    color(cap)

