# C5.py
import cv2
import numpy as np

def RED_bot2(img):
    img1=np.copy(img)
    img2 = cv2.resize(img1, (LX2,LY2), interpolation=cv2.INTER_AREA)
    Y=LY2-1; Y2=Y-15; XM=int(LX2/2); RED1=[]; RED2=[]; ra=1.3
    for x in range(LX2):
        #print(x,img2[Y,x,:],img2[Y2,x,:])
        if(img2[Y][x][2] > 100 and img2[Y][x][2] > ra*img2[Y][x][1]
            and img2[Y][x][2] > ra*img2[Y][x][0]):
            RED1.append(x)
        if(img2[Y2][x][2] > 100 and img2[Y2][x][2] > ra*img2[Y2][x][1]
            and img2[Y2][x][2] > ra*img2[Y2][x][0]):
            RED2.append(x)
    #print('RED1=',RED1)
    #print('RED2=',RED2)
    LRED1=len(RED1); LRED2=len(RED2);
    cv2.line(img1,(0,Y2*F),(LX2*F,Y2*F),(0,255,0),1)
    if(LRED1==0):
        MIDL1=-1; DR=-2; MIDL2=-1
        return DR,LRED1,LRED2,MIDL1,MIDL2,img1
    if(LRED1 > 0):
        MIDL1=int(np.median(RED1))
        if(30<=MIDL1<=50): DR=1
        elif(50<MIDL1<80): DR=7
        elif(0<=MIDL1<30): DR=3
        DR1=DR
        if(LRED2 > 0):
            MIDL2=int(np.median(RED2))
            cv2.line(img1,(MIDL1*F,Y*F),(MIDL2*F,Y2*F),(0,255,0),4)
            if(30<=MIDL2<=50):
                DR2=1
                if(DR1==1): DR=11
                if(DR1==3): DR=31
                if(DR1==7): DR=71
            elif(50<MIDL2<80):
                DR2=7
                if(DR1==1): DR=17
                if(DR1==3): DR=37
                if(DR1==7): DR=77
            elif(0<=MIDL2<30):
                DR2=3
                if(DR1==1): DR=13
                if(DR1==3): DR=33
                if(DR1==7): DR=73
        else:
            MIDL2=-1;
            DR2=-2
            if(DR1==1): DR=12
            if(DR1==3): DR=32
            if(DR1==7): DR=72
    if(LRED2>LRED1+4):
        if(RED2[-1]>RED1[-1]+6): DR=53
        elif(RED2[0]<RED1[0]-6): DR=57
    return DR,LRED1,LRED2,MIDL1,MIDL2,img1


F=8; LX=640; LY=480; LX2=int(LX/F); LY2=int(LY/F)
#cap = cv2.VideoCapture('REDL.mp4')
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, LX)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, LY)
n=0
while(n<200 and cap.isOpened()):
    n+=1
    ret, frame = cap.read()
    if(ret==False): break
    #if(n<90): continue
    DR,LRED1,LRED2,MIDL1,MIDL2,img1=RED_bot2(frame)
    print(n,DR,MIDL1,LRED1,MIDL2,LRED2,LRED2-LRED1)
    cv2.imshow('img1',img1)
    if cv2.waitKey(500) & 0xFF == ord('q'): break  
    #input('1111')
cap.release()
cv2.destroyAllWindows()
print('C5 is done...')
