import base64 import json import cv2 import sys import numpy as np from runner import warp_board # Load base64 encoded image from stdin stdin = sys.stdin.readline() stdin_decoded = base64.b64decode(stdin) img_array = np.frombuffer(stdin_decoded, dtype=np.uint8) camera_img = cv2.imdecode(img_array, flags=cv2.COLOR_BGR2RGB) camera_img = cv2.cvtColor(camera_img, cv2.COLOR_BGR2RGB) # Warp board, saving the homography points as well src_points = dst_points = [] #cv2.imshow("ppslpsl", camera_img) #cv2.waitKey(0) points1, points2 = warp_board(camera_img, src_points=src_points, dst_points=dst_points, short_circuit=True) # Finally, output to stdout for unity to read result = { "src_points": [p.tolist() for p in points1], "dst_points": [p.tolist() for p in points2], } print(json.dumps(result))