NameError in Python
<p>I am getting a <code>NameError: name 'eyes' not found</code> while trying to run an OpenCV project in Python on <code>cmd</code>. I am using Python 2.7 and OpenCV 2.4.13, which I think is not a problem.</p>

<pre><code>import cv2
import numpy as np

face_cascade =  cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')

cap = cv2.VideoCapture(1)

while True:
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for(x,y,w,h) in faces:
        cv2.reactangle(img, (x,y), (x+w,y+h), (255,0,0), 2)
        roi_gray = gray[y:y+h, x:x+w]
        roi_color = img[y:y+h, x:x+w]
        eyes = eye_cascade.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.imshow('img',img)
    k = cv2.waitKey(30) &amp; 0xff
    if k == 27:
        break

cap.release()
cv2.destroyAllWindows() 
</code></pre>

<p>Error:</p>

<blockquote>
  <p>File "detect.py" , line 19, in <br>
  for(ex,ey,ew,eh) in eyes:<br>
  NameError: name 'eyes' is not defined</p>
</blockquote>

<p>Problem of indentation, just like <a href="http://stackoverflow.com/a/39368777/4228275">this one</a>:</p>

<p><code>eyes</code> is out of scope when you go out of the <code>faces</code> loop.</p>

<pre><code>while True:
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for(x,y,w,h) in faces:
        cv2.reactangle(img, (x,y), (x+w,y+h), (255,0,0), 2)
        roi_gray = gray[y:y+h, x:x+w]
        roi_color = img[y:y+h, x:x+w]
        eyes = eye_cascade.detectMultiScale(roi_gray)
        # this one should be inside the 'faces' loop
        for(ex,ey,ew,eh) in eyes:
            cv2.rectangle(roi_color, (ex, ey), (ex+ew,ey+eh), (0,255,0), 2)

    cv2.imshow('img',img)
    k = cv2.waitKey(30) &amp; 0xff
    if k == 27:
        break
</code></pre>

python opencv