Я получаю ошибку ниже при выполнении кода веб-камеры CV2 на основе python
ошибка: OpenCV (4.2.0) C: \ projects \ opencv-python \ opencv \ modules \ core \ src \ array. cpp: 2492: error: (-206: Bad flag (параметр или поле структуры)) Нераспознанный или неподдерживаемый тип массива в функции cvGetMat
Мой код работает нормально используя ручные изображения, но когда я выполняю его с веб-камерой, я получаю ошибку выше. Ниже приведен код.
import tensorflow as tf
import matplotlib.pyplot as plt
from tensorflow import keras
import numpy as np
import pandas as pd
from PIL import Image
import cv2
import os
#loading the trained model
model = keras.models.load_model('mymodel.h5')
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
img=cv2.resize(gray, (150,150))
img = cv2.GaussianBlur(img,(5,5),0)
ret,img = cv2.threshold(img, 200, 255, cv2.THRESH_BINARY)
img_arr = np.array(img)
processed_image = np.array(img_arr, dtype = 'float32')
processed_image = processed_image.reshape((len("1"), 150, 150, 1))
processed_image = processed_image/255.
y_pred= model.predict_classes(processed_image)
y_pred
classes = {0:'C', 1:'Down', 2:'Fist', 3:'Fist_moved',4:'Index', 5:'L', 6:'Ok', 7:'Palm', 8:'Palm_moved', 9:'Thumb'}
classes
predicted = [classes.get(item,item) for item in y_pred]
predicted
columns=5
rows=4
cv2.imshow('Video',processed_image)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()