Skip to main content

Pupil Labs 2D Pupil Detector

Project description tests Code style: Black


This Python package contains the standalone 2D pupil detectors for the Pupil Core software stack.

Install via PyPI

pip install pupil-detectors


Here’s a quick example on how to detect and draw an ellipse.

import cv2
from pupil_detectors import Detector2D

detector = Detector2D()

# read image as numpy array from somewhere, e.g. here from a file
img = cv2.imread("pupil.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

result = detector.detect(gray)
ellipse = result["ellipse"]

# draw the ellipse outline onto the input image
# note that cv2.ellipse() cannot deal with float values
# also it expects the axes to be semi-axes (half the size)
   tuple(int(v) for v in ellipse["center"]),
   tuple(int(v / 2) for v in ellipse["axes"]),
   0, 360, # start/end angle for drawing
   (0, 0, 255) # color (BGR): red
cv2.imshow("Image", img)


Building from Source

Installing the dependencies

  • macOS: brew install eigen opencv

  • Windows: choco install eigen opencv

  • Ubuntu: apt-get install libeigen3-dev libeigen3-dev

Building the Python package

# Clone repository
git clone
cd pupil-detectors

# Install from source
pip install .

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pupil_detectors-2.0.2.tar.gz (69.6 kB view hashes)

Uploaded source

Built Distributions

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page