我是ML的新手,正在尝试在openCV、Python中制作一个使用网络摄像头检测数字的模型



我已经使用openCV训练了一个ML模型,但当我试图打开网络摄像头并使模型工作时,我会收到以下错误:

代码:

import numpy as np
import cv2
import pickle
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
width = 640
height = 480
cap = cv2.VideoCapture(1)
cap.set(3, width)
cap.set(4, height)
pickle_in = open("model_trained.p", "rb")
model = pickle.load(pickle_in)

def preProcessing(img):
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img = cv2.equalizeHist(img)
img = img / 255
return img

while True:
success, imgOriginal = cap.read()
img = np.asarray(imgOriginal)
img = cv2.resize(img, (320, 320))
img = preProcessing(img)
cv2.imshow("Processed Img", img)
if cv2.waitkey(1) & 0xFF == ord('q'):
break

错误:

Using TensorFlow backend.
Traceback (most recent call last):
File "C:/Users/basar/PycharmProjects/AdaniGas/main2.py", line 28, in <module>
img = cv2.resize(img, (320, 320))
TypeError: Expected Ptr<cv::UMat> for argument 'src'

进程结束,退出代码为1

它开始工作,实际上是在cap=cv.VideoCapture(1(我放了0而不是1,因为我正在使用网络摄像头,它起作用了。

相关内容

最新更新