Конечной целью этого является создание программы, работающей на Raspberry Pi, которая может передавать видеоданные на удаленный клиент.Чтобы сделать это, я (полагаю) мне нужно изменить данные фрейма на необработанные байты, чтобы они отправлялись через сокеты.Перед развертыванием этого в реальном мире я просто проверяю, могу ли я выполнить преобразование в байты и из них.Я получаю вывод, и он читает данные с камеры в режиме реального времени, но способ отображения - вертикальная линия шириной 1 пиксель по левому краю.(При использовании полноэкранной кнопки по умолчанию в окне OpenCV она увеличивается примерно до 5 пикселей в ширину.) Также просто для пояснения, функция tostring (), по-видимому, преобразует данные в необработанные байты, а не в строку?При проверке Python сказал, что новая переменная была байтами.
Мои предыдущие попытки были сосредоточены на том, чтобы просто взять необработанные данные изображения и попытаться их кодировать и декодировать, но я столкнулся с ошибкой.Я думаю, что я на правильном пути, но это трудный путь.
import cv2
import numpy as np
vid = cv2.VideoCapture(0)
while True:
empty, frame = vid.read()
frameString = frame.tostring()
# Intermediary socket stuffs.
newFrame = np.frombuffer(frameString)
cv2.imshow("s", newFrame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
vid.release()
Учитывая, что все это работает через Numpy, я ожидал бы получить равные результаты на любом конце преобразования, но что-то идетнеправильно, и я даже не уверен, с чего начать. (Стандартные и полноэкранные скриншоты: https://imgur.com/a/BIPxr50)