Beispiel #1
0
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
Beispiel #2
0
 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)
 ###############################################################
 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)
     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)
     if len(x_data) > 0:
         if x_data[0][1] == 'On':
Beispiel #3
0
import os
import numpy
import cv2
import time
from detectstatus import detectstatus
from detectstatus import detectsingle
from detectstatus import detecthandle

station = "shouxiang"
device = "001241137b9e"
picture = "AA14.001.YELLOW"
frame = cv2.imread("D:\\Tools\\camera\\" + station + "\\" + device + "\\" + picture + ".jpg")
#frame = cv2.imread("F:\\BaiduYunDownload\\Video\\PICTURES\\20191127-DONGSHENG\\001241442e50\\001241442e50"+".jpg")
#print ("D:\\Tools\\camera\\1fullimage\\20191127-DONGSHENG\\001241442dd7\\test1.jpg")
        

#detectsingle(cropped,"GREEN",rlevel,rrbright,rgbright,rbbright)
#x_data = detectsingle(frame,"GREEN",10,0,200,100)
#x_data = detectsingle(frame,"RED",0,200,0,100)
x_data = detectsingle(frame,"YELLOW",0,0,200,100)
#x_data = detectstatus(cropped,rlevel,glevel,rrbright,rgbright,rbbright,grbright,ggbright,gbbright)
#x_data = detectstatus(frame,0,10,200,0,100,0,200,100)

print (x_data)
Beispiel #4
0
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
Beispiel #5
0
             r_data = 0xC0
         else:
             r_data = 0x80
     else:
         r_data = 0x00
 else:
     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:
 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)
 ###############################################################
 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")
     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")
     if len(x_data) > 0:
         if x_data[0][1] == 'On':