我正在尝试使用.pt模型通过网络摄像头检测对象。当我执行以下代码时:
# Importamos librerias
import torch
import cv2
import numpy as np
import pandas
# Leemos el modelo
model = torch.hub.load('ultralytics/yolov5', 'custom',
path = 'C:/Users/maxim/OneDrive/Documentos/jupyterbooks/detector.pt')
# Realizo Videocaptura
cap = cv2.VideoCapture(1)
# Empezamos
while True:
# Realizamos lectura de frames
ret, frame = cap.read()
# Correccion de color
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
# Realizamos las detecciones
detect = model(frame)
# Mostramos FPS
cv2.imshow('Detector de Figuras', np.squeeze(detect.render()))
# Leemos el teclado
t = cv2.waitKey(5)
if t == 27:
break`
cap.release()
cv2.destroyAllWindows()
它给我这个错误:
error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
我是新来的,所以我真的不知道为什么给我这种类型的错误。最好的问候,马克西米利亚诺
我希望解决这个错误,这样我就可以在我的网络摄像头测试我的模型。
1条答案
按热度按时间lnxxn5zx1#
很可能是您的
frame
为空。这意味着网络摄像机未正确加载。您可以在cap.read()
之后检查类似print(frame.shape)
的内容,并查看它打印的内容。如果它不为空,它将打印网络摄像机帧大小。请确保您的网络摄像机位于您指定的位置1
。如果您只有一个网络摄像机,则应为0
。