import cv2 # 1. Load the cascades # Make sure the .xml file is in the same directory or provide the full path eye_cascade = cv2.CascadeClassifier('haarcascade_eye_tree_eyeglasses.xml') face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') # 2. Read the input image or video frame img = cv2.imread('person_with_glasses.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 3. Detect faces first (improves efficiency) faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x, y, w, h) in faces: roi_gray = gray[y:y+h, x:x+w] roi_color = img[y:y+h, x:x+w] # 4. Detect eyes within the face Region of Interest (ROI) 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) # 5. Display the result cv2.imshow('Eye Detection', img) cv2.waitKey(0) cv2.destroyAllWindows() Use code with caution. Key Advantages of This Model

If eye_cascade.empty() returns true, check that the path to your downloaded XML file is correct.

Specifically trained to ignore the specular reflections often found on glass lenses.

The file is a pre-trained Haar Cascade model used in the OpenCV library for detecting eyes, specifically optimized for individuals wearing eyeglasses. While the standard haarcascade_eye.xml works well for many cases, it often struggles with the reflections and frames of eyewear—this specific XML file was designed to bridge that gap. Where to Download haarcascade_eye_tree_eyeglasses.xml

Locate haarcascade_eye_tree_eyeglasses.xml in the file list. Click on the file name.

Understanding and Downloading haarcascade_eye_tree_eyeglasses.xml for OpenCV

High accuracy in detecting the center of the eye even when the frame partially obscures the eyebrow.

If you installed OpenCV via pip, you can often find these files already on your system using cv2.data.haarcascades .