Ask Your Question

Revision history [back]

Traceback (most recent call last): File "./Documents/S.py", line 36, in <module> roi_gray, NameError: name 'roi_gray' is not defined

I have this error when i run this code:

import cv2

cascPath = "/usr/local/lib/python2.7/site-packages/h.xml" eyePath = "/usr/local/lib/python2.7/site-packages/e.xml" smilePath = "/usr/local/lib/python2.7/site-packages/le.xml"

faceCascade = cv2.CascadeClassifier(cascPath) eyeCascade = cv2.CascadeClassifier(eyePath) smileCascade = cv2.CascadeClassifier(smilePath)

font = cv2.FONT_HERSHEY_SIMPLEX video_capture = cv2.VideoCapture(0)

while True: # Capture frame-by-frame ret, frame = video_capture.read()

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

faces = faceCascade.detectMultiScale(
    gray,
    scaleFactor=1.1,
    minNeighbors=5,
    minSize=(200, 200),
    flags=cv2.CASCADE_SCALE_IMAGE
)

# Draw a rectangle around the faces
for (x, y, w, h) in faces:
    cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 3)
    roi_gray = gray[y:y+h, x:x+w]
    roi_color = frame[y:y+h, x:x+w]
    cv2.putText(frame,'Face',(x, y), font, 2,(255,0,0),5)

smile = smileCascade.detectMultiScale(
    roi_gray,
    scaleFactor= 1.16,
    minNeighbors=35,
    minSize=(25, 25),
    flags=cv2.CASCADE_SCALE_IMAGE
)

for (sx, sy, sw, sh) in smile:
    cv2.rectangle(roi_color, (sh, sy), (sx+sw, sy+sh), (255, 0, 0), 2)
    cv2.putText(frame,'Smile',(x + sx,y + sy), 1, 1, (0, 255, 0), 1)

eyes = eyeCascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
    cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
    cv2.putText(frame,'Eye',(x + ex,y + ey), 1, 1, (0, 255, 0), 1)

cv2.putText(frame,'Number of Faces : ' + str(len(faces)),(40, 40), font, 1,(255,0,0),2)      
# Display the resulting frame
cv2.imshow('Video', frame)

if cv2.waitKey(1) & 0xFF == ord('q'):
  break

When everything is done, release the capture

video_capture.release() cv2.destroyAllWindows()

click to hide/show revision 2
None

updated 2019-12-13 08:04:00 -0600

berak gravatar image

Traceback (most recent call last): File "./Documents/S.py", line 36, in <module> roi_gray, NameError: name 'roi_gray' is not defined

I have this error when i run this code:

import cv2

cv2 cascPath = "/usr/local/lib/python2.7/site-packages/h.xml" eyePath = "/usr/local/lib/python2.7/site-packages/e.xml" smilePath = "/usr/local/lib/python2.7/site-packages/le.xml"

"/usr/local/lib/python2.7/site-packages/le.xml" faceCascade = cv2.CascadeClassifier(cascPath) eyeCascade = cv2.CascadeClassifier(eyePath) smileCascade = cv2.CascadeClassifier(smilePath)

cv2.CascadeClassifier(smilePath) font = cv2.FONT_HERSHEY_SIMPLEX video_capture = cv2.VideoCapture(0)

cv2.VideoCapture(0) while True: # Capture frame-by-frame ret, frame = video_capture.read()

video_capture.read()

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

 faces = faceCascade.detectMultiScale(
     gray,
     scaleFactor=1.1,
     minNeighbors=5,
     minSize=(200, 200),
     flags=cv2.CASCADE_SCALE_IMAGE
 )

 # Draw a rectangle around the faces
 for (x, y, w, h) in faces:
     cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 3)
     roi_gray = gray[y:y+h, x:x+w]
     roi_color = frame[y:y+h, x:x+w]
     cv2.putText(frame,'Face',(x, y), font, 2,(255,0,0),5)

 smile = smileCascade.detectMultiScale(
     roi_gray,
     scaleFactor= 1.16,
     minNeighbors=35,
     minSize=(25, 25),
     flags=cv2.CASCADE_SCALE_IMAGE
 )

 for (sx, sy, sw, sh) in smile:
     cv2.rectangle(roi_color, (sh, sy), (sx+sw, sy+sh), (255, 0, 0), 2)
     cv2.putText(frame,'Smile',(x + sx,y + sy), 1, 1, (0, 255, 0), 1)

 eyes = eyeCascade.detectMultiScale(roi_gray)
 for (ex,ey,ew,eh) in eyes:
     cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
     cv2.putText(frame,'Eye',(x + ex,y + ey), 1, 1, (0, 255, 0), 1)

 cv2.putText(frame,'Number of Faces : ' + str(len(faces)),(40, 40), font, 1,(255,0,0),2)      
 # Display the resulting frame
 cv2.imshow('Video', frame)

 if cv2.waitKey(1) & 0xFF == ord('q'):
   break

# When everything is done, release the capture

capture video_capture.release() cv2.destroyAllWindows()

cv2.destroyAllWindows()