我正在研究实时服装检测。所以我从 GitHub 借用了这样的代码: https: //github.com/rajkbharali/Real-time-clothes-detection 但是(H, W) = frame.shape[:2]:最后一行出现以下错误。我应该在哪里修复它?from time import sleepimport cv2 as cvimport argparseimport sysimport numpy as npimport os.pathfrom glob import globimport imutilsfrom imutils.video import WebcamVideoStreamfrom imutils.video import FPSfrom google.colab import drivedrive.mount('/content/drive')%cd /content/drive/My Drive/experiment/Yolo_mark-master/x64/Release/Labels = []classesFile1 = "data/obj.names";with open(classesFile1, 'rt') as f: Labels = f.read().rstrip('\n').split('\n')np.random.seed(42)COLORS = np.random.randint(0, 255, size=(len(Labels), 3), dtype="uint8")weightsPath = "obj_4000.weights"configPath = "obj.cfg"net1 = cv.dnn.readNetFromDarknet(configPath, weightsPath)net1.setPreferableBackend(cv.dnn.DNN_BACKEND_OPENCV)net1.setPreferableTarget(cv.dnn.DNN_TARGET_CPU)image = WebcamVideoStream(src=0).start()fps = FPS().start()#'/home/raj/Documents/yolov3-Helmet-Detection-master/safety.mp4'#while fps._numFrames<100:while True:#for fn in glob('images/*.jpg'): frame = image.read() #frame = imutils.resize(frame,width=500) (H, W) = frame.shape[:2]
1 回答
萧十郎
TA贡献1815条经验 获得超13个赞
您的错误背后的原因是框架是None(Null). 有时,从网络摄像头捕获的第一帧是“无”,主要是因为 (1)网络摄像头尚未准备好(并且需要一些额外的时间才能准备好)或者(2)操作系统不允许您的代码访问网络摄像头。
在第一种情况下,在对框架执行任何操作之前,您需要检查框架是否有效:
while True:
frame = image.read()
if frame is not None: # add this line
(H, W) = frame.shape[:2]
在其他情况下,您需要检查操作系统中的相机设置。
此外,为了捕获网络摄像头帧,还有另一种基于Opencv 中的VideoCapure类的方法,该方法可能更容易调试。
添加回答
举报
0/150
提交
取消