Skip to content
Apply computer vision to table tennis for match / training analysis
C++ Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
processing_speed_analysis update README with pictures to better illustrate the project Oct 12, 2017


The goal of the project is to apply computer vision with OpenCV, and maybe depth sensors like Kinect, to keep track of the score at table tennis. Furthermore, data analysis can be made to infer statistics about the players.


OpenCV 2.4

Mac OS X

brew tap homebrew/science && brew install opencv

The OpenCV is usually installed in /usr/local/Cellar/opencv/.

To use the Python bindings, you must create symlinks in the directory where Python is installed, usually in /Library/Python/2.7/site-packages/, pointing to the OpenCV directory.

sudo ln -s /usr/local/Cellar/opencv/2.4.11/lib/python2.7/site-packages/ /Library/Python/2.7/site-packages/
sudo ln -s /usr/local/Cellar/opencv/2.4.11/lib/python2.7/site-packages/ /Library/Python/2.7/site-packages/


  1. First step: camera calibration
  2. Second step: distortion correction
  3. Third step: table lines detection
  4. Fourth step: ball tracking
  5. Fifth step: 3D position calculation with stereovision
    1. calibration

Distortion correction

Before After
before after

Table lines detection

Hough transform Rectangle detection Hough after k-mean
hough transform rectangle detection hough transform after k-mean

Ball tracking

ball tracking

You can’t perform that action at this time.