Получение ошибки opencv (-215: утверждение не выполнено)! Ssize.empty () в функции 'cv :: resize'

У меня есть следующий код, в котором я отправляю непрерывные данные от стримера зрителю. Я получаю сообщение об ошибке при изменении размера функции CV

Streamer.py

footage_socket.connect('tcp://localhost:8080')
videoFile = "D:/sample.mp4"
camera = cv2.VideoCapture(videoFile)
while True:
  grabbed, frame = camera.read()
  try:
      frame = cv2.resize( frame, (224, 224) ).astype( "float32" )
 except cv2.error:
      break
  image= img_to_array(frame)
  image=image.reshape((1,image.shape[0],image.shape[1],image.shape[2]))
  image=preprocess_input(image)
  preds=model.predict(image)
  footage_socket.send(preds)
footage_socket.close()

Viewer.py

context = zmq.Context()
footage_socket = context.socket(zmq.SUB)
footage_socket.bind('tcp://*:8080')
footage_socket.setsockopt_string(zmq.SUBSCRIBE, np.unicode(''))
while True:
    frame = footage_socket.recv()
    img = cv2.imdecode(np.fromstring(base64.b64decode(frame),dtype = np.uint8),1)
    frame = cv2.resize( img, (224, 224) )
    image = img_to_array( frame )
    image = image.reshape( (1, image.shape[0], image.shape[1], image.shape[2]) )
    image = preprocess_input( image )
    predictions = m1.predict(img)
 footage_socket.close()

Я получаю указанную ниже ошибку

frame = cv2.resize( img, (224, 224) )
cv2.error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:4045: error: 
(-215:Assertion failed) !ssize.empty() in function 'cv::resize'

Помощь очень ценится. Спасибо


person Mazia    schedule 11.11.2020    source источник
comment
Скорее всего footage_socket.recv() вернет null   -  person Ahx    schedule 11.11.2020
comment
спасибо большое, я посмотрю на этот @Ahx   -  person Mazia    schedule 11.11.2020
comment
Я могу получить данные, не пустые @Ahx   -  person Mazia    schedule 11.11.2020
comment
Тогда вы показывали изображение cv2.imshow("img", img); cv2.waitKey(0) ?   -  person Ahx    schedule 11.11.2020
comment
Мне не нужно выводить изображение, но я проверю и посмотрю. Мне просто нужно отправить результаты прогноза, как только изображение будет преобразовано в кадры @Ahx   -  person Mazia    schedule 11.11.2020


Ответы (1)


Я решил проблему, изменив код с recv_string () на recv_pyobj () и с send () на send_pyobj (), и код работает отлично. Спасибо

person Mazia    schedule 11.11.2020