|
|
- 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='<u2', buffer=message).reshape((120, 160))
- #img = np.frombuffer(message, dtype=np.uint16).reshape((120, 160))
- b = img.copy()
- for x in range(160):
- for y in range(120):
- b[y][x] = ((img[y][x]&0xff)<<8) + (img[y][x]>>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()
|