Конвертировать из данных сокета в массив NumPy - PullRequest
0 голосов
/ 18 января 2019

Всех приветствую.

Я пытаюсь отобразить картинку, отправленную через сокеты.

Существует такой код: P.S Да, да, я знаю, что это худшее, что вы видели, но вот оно:

while True:
    data = s.recv(BUFFER_SIZE)
    if data:
        print ("received data:", len(data))
        try:
            myfile = open("t.png", 'wb')
            myfile.write(data)
            img = cv2.imread('t.png')
            if img is not None:
                img = cv2.resize(img, (1280, 720))
                cv2.imshow("1", img)
                cv2.waitKey(1)
        except IOError as e:
            print(e)

Он открывает файл, записывает туда изображение, а затем opencv читает это изображение и показывает его.

Как opencv может отображать изображение сразу?

Чтобы не записать картинку на диск и не прочитать, а сразу показать.

1 Ответ

0 голосов
/ 19 января 2019

Преобразует data (строку), полученную из сокета, в изображение OpenCV:

img = cv2.imdecode(np.fromstring(data, np.uint8), 1)

Ответ в комментарии второй мировой войны имеет похожий код, но более беспорядочный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...