Exemplo n.º 1
0
def slabDim(dimCameraLiink):

    global lookForOcr
    #print(lookForOcr)
    global timeOver
    global valCsv
    global ui
    global Ui_MainWindow

    lookForOcr = False
    timeOver = 0
    #alarRef = [410,1165,2165,1165]
    alarRef = [365, 1165, 2200, 1165]  # 1_june_2020(10.51_am)
    #alar = [alarRef[0],alarRef[1]-40,alarRef[2],alarRef[3]-40]
    alar = [alarRef[0], alarRef[1] - 80, alarRef[2], alarRef[3] - 80]

    #alarRef = [330,820,1585,820] # trail_ggjh
    #alar = [alarRef[0],alarRef[1]-40,alarRef[2],alarRef[3]-40] #  # trail_ggjh

    dB = dist.euclidean(alarRef[:2], alarRef[-2:])
    #dB = alar[2]-alar[0]
    #print(str(dB)+'====sub')
    pixelsPerMetric = dB / 1690  #(pixel/mm)
    #print(str(pixelsPerMetric)+'***pixelPerMetric')
    print(str(1 / pixelsPerMetric) + '--------mmPerPixel')

    valCsv = []
    dim = cv2.VideoCapture(dimCameraLiink)
    #dim = cv2.VideoCapture("C:/Users/CCTV/Desktop/Videos/1280.mov")
    dim.set(cv2.CAP_PROP_BUFFERSIZE, 10)
    #dim = cv2.VideoCapture('rtsp://*****:*****@10.152.235.180')
    #dim.set(cv2.CAP_PROP_POS_FRAMES,1)

    while (True):
        #st1 = time.time()

        ret, img_dim = dim.read()

        val = Ui_MainWindow.retunValue()
        alarRef = [365, 1165 + val, 2200, 1165 + val]  # 05_june_2020(12.20_pm)
        alar = [alarRef[0], alarRef[1] - 80, alarRef[2], alarRef[3] - 80]

        #img_dim[:,2485:] = 0
        #img_dim[:,0:100] = 0
        if ret == False:
            #print((time.time()-st1)*1000,"ms---")
            print(
                "Slab camera Video could not be fetched --- Kindly re-run the application"
            )
            print(time.strftime("%Y-%m-%d(%H_%M_%S)"))
            dim = cv2.VideoCapture(dimCameraLiink)
            #dim.set(cv2.CAP_PROP_BUFFERSIZE, 10)
            continue
        #img_dim = imutils.rotate_bound(img_dim,.5)
        thresh = threshOP(
            img_dim
        )  #----------------------------------------------------------------------
        #if np.count_nonzero(thresh[alar[1],]) >= 550: # traila_igjyg
        if np.count_nonzero(thresh[alar[1], ]) >= 950 and lookForOcr == False:
            mmPPix, img_dim = mmPerPix(
                img_dim, thresh, alar, pixelsPerMetric
            )  #-----------------------------------------------------
            valCsv.append(mmPPix)
            '''if len(valCsv) > 5 and len(valCsv) < 150:
                t3 = threading.Thread(target=ui.updateGraph,args=(valCsv,))
                t3.start()
                t3.join()
                if (len(valCsv) % 6) == 0:
                    ui.updateGraph(valCsv)
                    dim = cv2.VideoCapture(dimCameraLiink)'''

            # considaring we have a longest slab
            if len(valCsv) > 150:
                if lookForOcr == False:
                    lookForOcr = True
                    timeOver = time.time()
                    print(
                        '----------------------------------------------max value reached >150'
                    )
                    print(lookForOcr, "<-look for ocr")
                    ui.updateGraph(valCsv)
                    #dim = cv2.VideoCapture(dimCameraLiink)
                    #dim.set(cv2.CAP_PROP_BUFFERSIZE, 10)
        # slab passes the ROI
        #if np.count_nonzero(thresh[alar[1]+30,]) <= 550 and np.count_nonzero(thresh[alar[1]-30,]) <= 550: # trail_jkghjvjhg
        if np.count_nonzero(
                thresh[alar[1] + 30, ]) <= 950 and np.count_nonzero(
                    thresh[alar[1] - 30, ]) <= 950:
            if len(valCsv) > 60:
                if lookForOcr == False:
                    lookForOcr = True
                    timeOver = time.time()
                    #writeCSV(valCsv)
                    #valCsv = []
                    print("+++++++++++++++++++++++++ slab over")
                    print(lookForOcr, "<-look for ocr")
                    ui.updateGraph(valCsv)
                    #dim = cv2.VideoCapture(dimCameraLiink)
                    #dim.set(cv2.CAP_PROP_BUFFERSIZE, 10)

            else:
                None
                #valCsv = []
        # Ref line
        #img_dim  = cv2.line(img_dim ,(alar[0] ,alar[1]+60),(alar[2] ,alar[3]+60),(250,0,0),4) # ref line
        img_dim = cv2.line(img_dim, (alarRef[0], alarRef[1]),
                           (alarRef[2], alarRef[3]), (255, 0, 0),
                           4)  # ref line
        img_dim = cv2.resize(img_dim, (int(1200), int(700)))

        img_dim = cv2.cvtColor(img_dim, cv2.COLOR_BGR2RGB)
        img_dim = np.require(img_dim, np.uint8, 'C')
        ui.showImg1(img_dim)

        #dim = cv2.VideoCapture(dimCameraLiink)
        #dim.set(cv2.CAP_PROP_BUFFERSIZE, 10)
        #continue
        # Resize
        #img_dim1 = cv2.resize(img_dim ,(int(1200),int(700)))
        #thresh1 = cv2.resize(thresh,(int(1920/2),int(1080/2)))

        #cv2.imshow('img_dim ',img_dim1)
        #cv2.imshow(' thrsh ',thresh1)
        #key = cv2.waitKey(1) & 0xFF

        #print((time.time()-st1)*1000,"ms---")
        '''if key == ord('q'):