import zmq import cv2 import numpy as np import struct import time context = zmq.Context() context2 = zmq.Context() # Socket to talk to server print("Connecting to hello world server…") socket = context.socket(zmq.REQ) socket.connect("tcp://192.168.0.12:5555") socket2 = context2.socket(zmq.REQ) socket2.connect("tcp://192.168.0.12:5556") recordFrames = 0 startTime = 0 def draw_circle(event, x, y, flags, param): global recordFrames if event == cv2.EVENT_LBUTTONDOWN: print(img[y][x]>>8, img[y][x]&0xff) print(b[y][x]>>8, b[y][x]&0xff) recordFrames = 300 startTime = time.time() with open("lepton_log.bin", "wb") as f: pass cv2.namedWindow('image') cv2.setMouseCallback('image', draw_circle) while 1: socket.send(b"Hello") # Get the reply. message = socket.recv() socket2.send(b"Hello") gridEyeData = socket2.recv() if recordFrames > 0: print ("left frames", recordFrames) with open("lepton_log.bin", "ab") as f: f.write(message) f.write(gridEyeData) recordFrames -= 1 sleepTime = 0.1 - (time.time() - startTime) if sleepTime > 0: time.sleep(sleepTime) # wait 0.1 second startTime = time.time() continue img = np.array(struct.unpack("<19200H", message), dtype=np.uint16).reshape((120, 160)) # img = np.ndarray(shape=(19200,),dtype='>8) b = cv2.normalize(b, dst=None, alpha=0, beta=65535, norm_type=cv2.NORM_MINMAX) #img = img.astype(np.uint8) #image = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR) #cvuint8 = cv2.convertScaleAbs(image) cv2.imshow("image", b) # cv2.imshow("image_o", img) gridEyeImg = np.frombuffer(gridEyeData, dtype=np.uint8).reshape((32, 8)) cv2.imshow("gridEyeImg", cv2.resize(gridEyeImg, (160, 640))) key = cv2.waitKey(100) if key == ord('q'): break cv2.destroyAllWindows()