У меня есть клиент, который извлекает кадры из камеры, затем сжимает и сохраняет их в объекте JSON для отправки на сервер Flask.Мне нужно отобразить указанные изображения кадров на интерфейсе Flask.Моя текущая попытка не возвращает ошибку, но она просто печатает массив np вместо отображения фактического изображения.
client.py
class Camera(object):
def __init__(self, mode, addr, id):
self.id = id
self.video = None
if(mode == "file" and type(addr) == type("hi")):
self.video = cv2.VideoCapture(addr)
elif(mode == "live" and type(addr) == type(0)):
self.video = cv2.VideoCapture(addr)
else:
print("ERROR: Camera class given either an incorrect mode or an address of the wrong type.")
def __del__(self):
self.video.release()
def get_cam_id(self):
return self.id
def get_frame(self):
ret, frame = self.video.read()
if(ret == True):
return frame
else:
return None
def norm_frame(self, frame):
frame = cv2.resize(frame, None, fx=0.6, fy=0.6)
return frame
def package(self, frame):
frame = cv2.imencode('.jpg', frame, [cv2.IMWRITE_JPEG_QUALITY, 70])[1].tolist()
frame = json.dumps(frame)
return frame
test_config
route в applications.py
@application.route('/test_config', methods = ['GET', 'POST'])
def test2():
var = input('Enter ID: ')
print(FEEDS[var])
frame = FEEDS[var].package(FEEDS[var].norm_frame(FEEDS[var].get_frame()))
print(frame)
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Attempt
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
#frame = json.loads(frame)
#frame = np.asarray(frame, np.uint8)
#frame = cv2.imdecode(frame, cv2.IMREAD_COLOR)
#return frame
return "Frame will display here eventually!"
Существует маршрут /test_input
, который позволяет пользователю вводить информацию о камерах.Указанная информация используется для создания объектов камеры в client.py
.Объекты хранятся в словаре в applications.py
с ключом ID, который при вводе в test_config
определяет, какой кадр отображается.У меня проблемы с отображением изображения после ввода ключа для объекта «Камера».