| 
						 | 
						- 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()
 
 
  |