diff --git a/frontend/__init__.py b/frontend/__init__.py new file mode 100644 index 0000000..3673f0a --- /dev/null +++ b/frontend/__init__.py @@ -0,0 +1,52 @@ +import requests +from cv2 import cv2 +import numpy as np +import json +import os + +from datetime import datetime + + +API_URL = 'http://127.0.0.1:8000' + +img_dir = '../../usable_imgs/' + +cv2.namedWindow('Input Image') +cv2.namedWindow('Predicted Disparity') + + +def normalize_and_colormap(img): + ret = (img - img.min()) / (img.max() - img.min()) * 255.0 + ret = ret.astype("uint8") + ret = cv2.applyColorMap(ret, cv2.COLORMAP_INFERNO) + return ret + + +for img in os.scandir(img_dir): + if 'ir' not in img.path: + continue + input_img = cv2.imread(img.path) + if input_img.shape == (1024, 1280, 3): + diff = (512 - 480) // 2 + downsampled = cv2.pyrDown(input_img) + input_img = downsampled[diff:downsampled.shape[0]-diff, 0:downsampled.shape[1]] + + openBin = {'file': ('file', open(img.path, 'rb'), 'image/png')} + + print('sending image') + start = datetime.now() + r = requests.put(f'{API_URL}/ir', files=openBin) + end = datetime.now() + print('received response') + print(f'processing took {end - start}') + r.raise_for_status() + + # FIXME yuck, don't json the json + pred_disp = np.asarray(json.loads(json.loads(r.text))['disp'], dtype='uint8') + ref_pat = np.asarray(json.loads(json.loads(r.text))['reference'], dtype='uint8').transpose((2,0,1)).astype('uint8') + pred_disp = cv2.transpose(pred_disp) + + cv2.imshow('Input Image', input_img) + # cv2.imshow('Reference Image', ref_pat) + cv2.imshow('Predicted Disparity', normalize_and_colormap(pred_disp)) + cv2.waitKey()