def region_detect(i, j, frame, target_matrix): m0 = target_matrix[j * 2] m1 = target_matrix[j * 2 + 1] m11 = m1[0] m12 = m1[1] #print j,counter,m0,m1,m11,m12 y0 = m11[1] y1 = m12[1] x0 = m11[0] x1 = m12[0] #print y0,y1,x0,x1 cropped = frame[y0:y1, x0:x1] #[y0:y1, x0:x1] r_data = 0 ############################################################### # style--> "name"(such as AA1.1141): value(such as 1,2,3) # B Y G R, 0x00(B)00(Y)00(G)00(R), 0(1:OK,0:Err)0(1:On,0:Off) ############################################################### # check handle status hand1 = m0.find("HANDLE") if hand1 >= 0: m0 = m0[0:hand1 - 1] x_data = detecthandle(cropped) if x_data[0] == 1: if x_data[1] == 'W': r_data = 0xC0 else: r_data = 0x80 else: r_data = 0x00 else: # check lamp status pos1 = m0.find("GREEN") pos2 = m0.find("RED") pos3 = m0.find("YELLOW") if pos1 >= 0: # GREEN m0 = m0[0:pos1 - 1] tmp = send_data.get(m0) if tmp == None: tmp = 0 r_data = tmp + 8 x_data = detectsingle(cropped) if len(x_data) > 0: if x_data[0][1] == 'N' or x_data[0][1] == 'E': r_data = r_data else: r_data = r_data + 4 elif pos2 >= 0: # RED m0 = m0[0:pos2 - 1] tmp = send_data.get(m0) if tmp == None: tmp = 0 r_data = tmp + 2 x_data = detectsingle(cropped) if len(x_data) > 0: if x_data[0][1] == 'N' or x_data[0][1] == 'E': r_data = r_data else: r_data = r_data + 1 elif pos3 >= 0: # YELLOW m0 = m0[0:pos3 - 1] tmp = send_data.get(m0) if tmp == None: tmp = 0 r_data = tmp + 32 x_data = detectsingle(cropped) if len(x_data) > 0: if x_data[0][1] == 'N' or x_data[0][1] == 'E': r_data = r_data else: r_data = r_data + 16 else: r_data = 10 x_data = detectstatus(cropped) if x_data is None: r_data = 0 # default R:off, G:off elif len(x_data): #parse status of lamp x = len(x_data) y = 0 while x: tmp0 = x_data[y] tmp1 = tmp0[1] if tmp1 == 'R': r_data = r_data + 1 elif tmp1 == 'G': r_data = r_data + 4 elif tmp1 == 'E': r_data = 0 else: r_data = r_data x = x - 1 y = y + 1 #print ("lamp status data is %d", (r_data)) else: r_data = 0 return m0, r_data
m0 = m0[0:pos3 - 1] tmp = send_data.get(m0) if tmp == None: tmp = 0 r_data = tmp x_data = detectsingle(cropped, "YELLOW", rlevel) if len(x_data) > 0: if x_data[0][1] == 'On': r_data = r_data + 48 elif x_data[0][1] == 'Off': r_data = r_data + 32 else: r_data = r_data else: r_data = 0 x_data = detectstatus(cropped, rlevel, glevel) if x_data is not None: x = len(x_data) y = 0 while x: tmp0 = x_data[y] tmp1 = tmp0[0] tmp2 = tmp0[1] if tmp1 == 0: # red if tmp2 == 'On': r_data = r_data + 3 elif tmp2 == 'Off': r_data = r_data + 2 else: r_data = r_data else: # green
if tmp == None: tmp = 0 r_data = tmp x_data = detectsingle(cropped, "YELLOW", rlevel, rrbright, rgbright, rbbright) if len(x_data) > 0: if x_data[0][1] == 'On': r_data = r_data + 48 elif x_data[0][1] == 'Off': r_data = r_data + 32 else: r_data = r_data else: r_data = 0 x_data = detectstatus(cropped, rlevel, glevel, rrbright, rgbright, rbbright, grbright, ggbright, gbbright) if x_data is not None: x = len(x_data) y = 0 while x: tmp0 = x_data[y] tmp1 = tmp0[0] tmp2 = tmp0[1] if tmp1 == 0: # red if tmp2 == 'On': r_data = r_data + 3 elif tmp2 == 'Off': r_data = r_data + 2 else: r_data = r_data
def region_detect(i, j, frame, target_matrix, send_data): m0 = target_matrix[j][0] m1 = target_matrix[j][1] m11 = m1[0] m12 = m1[1] #print j,counter,m0,m1,m11,m12 rlevel = target_matrix[j][2] glevel = target_matrix[j][3] rrbright = target_matrix[j][4] rgbright = target_matrix[j][5] rbbright = target_matrix[j][6] grbright = target_matrix[j][7] ggbright = target_matrix[j][8] gbbright = target_matrix[j][9] #print j,counter,m0,m1,m11,m12 y0 = int(m11[1]) y1 = int(m12[1]) x0 = int(m11[0]) x1 = int(m12[0]) #print y0,y1,x0,x1 cropped = frame[y0:y1, x0:x1] #[y0:y1, x0:x1] r_data = 0 ############################################################### # style--> "name"(such as AA1.1141): value(such as 1,2,3) # B Y G R, 0x00(B)00(Y)00(G)00(R), 0(1:OK,0:Err)0(1:On,0:Off) ############################################################### # check handle status hand1 = m0.find("HANDLE") if hand1 >= 0: m0 = m0[0:hand1 - 1] x_data = detecthandle(cropped, rlevel) if x_data[0] == 1: if x_data[1] == 'W': r_data = 0xC0 else: r_data = 0x80 else: r_data = 0x00 else: # check lamp status pos1 = m0.find("GREEN") pos2 = m0.find("RED") pos3 = m0.find("YELLOW") if pos1 >= 0: # GREEN m0 = m0[0:pos1 - 1] tmp = send_data.get(m0) if tmp == None: tmp = 0 r_data = tmp x_data = detectsingle(cropped, "GREEN", rlevel, rrbright, rgbright, rbbright) if x_data[0][1] == 'On': r_data = r_data + 12 elif x_data[0][1] == 'Off': r_data = r_data + 8 else: r_data = r_data elif pos2 >= 0: # RED m0 = m0[0:pos2 - 1] tmp = send_data.get(m0) if tmp == None: tmp = 0 r_data = tmp x_data = detectsingle(cropped, "RED", rlevel, rrbright, rgbright, rbbright) if len(x_data) > 0: if x_data[0][1] == 'On': r_data = r_data + 3 elif x_data[0][1] == 'Off': r_data = r_data + 2 else: r_data = r_data elif pos3 >= 0: # YELLOW m0 = m0[0:pos3 - 1] tmp = send_data.get(m0) if tmp == None: tmp = 0 r_data = tmp x_data = detectsingle(cropped, "YELLOW", rlevel, rrbright, rgbright, rbbright) if len(x_data) > 0: if x_data[0][1] == 'On': r_data = r_data + 48 elif x_data[0][1] == 'Off': r_data = r_data + 32 else: r_data = r_data else: r_data = 0 x_data = detectstatus(cropped, rlevel, glevel, rrbright, rgbright, rbbright, grbright, ggbright, gbbright) if x_data is not None: x = len(x_data) y = 0 while x: tmp0 = x_data[y] tmp1 = tmp0[0] tmp2 = tmp0[1] if tmp1 == 0: # red if tmp2 == 'On': r_data = r_data + 3 elif tmp2 == 'Off': r_data = r_data + 2 else: r_data = r_data else: # green if tmp2 == 'On': r_data = r_data + 12 elif tmp2 == 'Off': r_data = r_data + 8 else: r_data = r_data x = x - 1 y = y + 1 #print ("lamp status data is %d", (r_data)) else: r_data = 0 return m0, r_data
m0 = m0[0:pos3 - 1] tmp = send_data.get(m0) if tmp == None: tmp = 0 r_data = tmp x_data = detectsingle(cropped, "YELLOW") if len(x_data) > 0: if x_data[0][1] == 'On': r_data = r_data + 48 elif x_data[0][1] == 'Off': r_data = r_data + 32 else: r_data = r_data else: r_data = 0 x_data = detectstatus(cropped) if x_data is not None: x = len(x_data) y = 0 while x: tmp0 = x_data[y] tmp1 = tmp0[0] tmp2 = tmp0[1] if tmp1 == 0: # red if tmp2 == 'On': r_data = r_data + 3 elif tmp2 == 'Off': r_data = r_data + 2 else: r_data = r_data else: # green