首页 > 解决方案 > cv2.imshow 的语法错误

问题描述

我想在 while 循环中使用 cv2.imshow。此循环将因 if 条件而中断。当我在循环外使用 cv2.imshow 时,它可以正常工作,但是当我在循环中添加它时,python 返回语法错误消息:无效语法。你能帮忙解决一下吗?

import cv2
import numpy as np

faceDetect=cv2.CascadeClassifier("haarcascades/haarcascade_frontalface_default.xml")
cam=cv2.VideoCapture(0)
rec=cv2.face.LBPHFaceRecognizer_create()
rec.read('recognizer/trainingData.yml')
id=0
while(True):
    ret,img=cam.read()
    gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    faces=faceDetect.detectMultiScale(gray,1.3,5)
    for(x,y,w,h) in faces:
        cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)
        id,conf=rec.predict(gray[y:y+h,x:x+w])
        cv2.cv.putText(cv2.cv.fromarray(img),str(id))
    cv2.imshow("preview",img)
    if cv2.waitKey(1)== ord('q'):
        break
cam.release()
cv2.destroyAllWindows()

错误按摩

    cv2.imshow("preview",img)
      ^
SyntaxError: invalid syntax

标签: pythonopencv

解决方案


推荐阅读