| | |
| | | contours, hierarchy = cv2.findContours( |
| | | counter, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) |
| | | contours_count = 0 |
| | | return_numbers = [] |
| | | for c in contours: |
| | | x, y, w, h = cv2.boundingRect(c) |
| | | if hierarchy[0][contours_count][3] == 0 and h > image_h * 0.3: |
| | |
| | | time_now = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") |
| | | app.logger.info(time_now+' extract_voltage_send job started!') |
| | | #camera = cv2.VideoCapture(0) #use 0 for web camera deplyoment |
| | | cap = cv2.VideoCapture(0) # for testing |
| | | cap = cv2.VideoCapture('./debug/7422.mp4') # for testing |
| | | # 以下设置显示屏的宽高 |
| | | cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640) |
| | | cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480) |
| | |
| | | ret, frame = cap.read() |
| | | return_digital,job_status = extrct_digits_from_frame(frame,app.config['IMAGE_CLIP_COLS_START'],app.config['IMAGE_CLIP_COLS_END'],app.config['IMAGE_CLIP_ROWS_START'],app.config['IMAGE_CLIP_ROWS_END']) |
| | | if job_status or fails_count > 10: |
| | | mqtt.publish(app.config['REMOTE_MQTT_PUBLISH_TOPIC'], "{'voltage':"+str(return_digital)+"}") |
| | | #mqtt.publish(app.config['REMOTE_MQTT_PUBLISH_TOPIC'], "{'voltage':"+str(return_digital)+"}") |
| | | mqtt.publish(app.config['REMOTE_MQTT_PUBLISH_TOPIC'], "{\"sn\":" + "\"" + app.config['MQTT_CLIENT_ID'] +"\"" + " , \"time\":"+ "\"" + time_now +"\""+" , \"value\":"+ str(return_digital) +" }") |
| | | cv2.imwrite("./imageframe/image_frame_"+time_now+".jpg", cv2.putText(frame, str(return_digital), (app.config['IMAGE_CLIP_ROWS_START'], app.config['IMAGE_CLIP_COLS_START']), cv2.FONT_HERSHEY_COMPLEX, 1.5, (0, 255, 255), 2)) |
| | | cap.release() |
| | | break |