Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


team 2521 team 2521 team 2521 team 2521


Before starting the program, you must install OpenCV >= v3.1.x along with the pip dependencies:

$ pip install -r requirements.txt

Then, you can run the program using:

$ python

Full usage:

usage: [-h] [-i IMAGE] [-s SOURCE] [-t TEAM] [-d] [-na MIN_AREA]
              [-xa MAX_AREA] [-nf MIN_FULL] [-xf MAX_FULL]
              [-l LOWER_COLOR [LOWER_COLOR ...]]
              [-u UPPER_COLOR [UPPER_COLOR ...]] [-tn] [-v]

Usage with Docker

If you are using Docker, the installation process is much easier.

Note: due to the sizes of the images that are installed as part of the build process, it is recommended to have a few GB of hard disk space available when building.

First, cd to this repository and then run docker build . -t vision. All existing config files will be used in the build process to make the image.

This will produce a docker image which can be run using:

$ docker run --device /dev/video0 vision

Make sure that you have a camera connected before running this!

Connection Status GUI

SERT's vision software comes with a connection status GUI to help debug connection issues. This GUI can be displayed on a monitor connected to the co-processor. We use an Adafruit 5" screen.

  • RADIO checks connection to the robot's radio (at 10.XX.XX.1)
  • ROBOT checks connection to the roboRIO (at 10.XX.XX.2)
  • NTABL checks connection to the NetworkTables server on the roboRIO
Good Warning Bad
Connection is good and system is ready. Some connections are down. No connection. Ensure ethernet is plugged in.
good good good

installed GUI


Command-Line Options

All command-line arguments may be configured in the config.ini file (located at config/config.ini). For example, the --lower-rgb argument may be edited using the lower-rgb line in the config.ini.

optional arguments:
  -h, --help            show this help message and exit
  -i IMAGE, --image IMAGE
                        path to image
  -s SOURCE, --source SOURCE
                        video source (default=0)
  -t TEAM, --team TEAM  the team of the target roboRIO
  -d, --display         display results of processing in a new window
  -na MIN_AREA, --min-area MIN_AREA
                        minimum area for blobs
  -xa MAX_AREA, --max-area MAX_AREA
                        maximum area for blobs
  -nf MIN_FULL, --min-full MIN_FULL
                        minimum fullness of blobs
  -xf MAX_FULL, --max-full MAX_FULL
                        maximum fullness of blobs
                        lower color threshold in HSV
                        upper color threshold in HSV
  -tn, --tuning         open in tuning mode
  -v, --verbose         for debugging, prints useful values


For use with the Microsoft Lifecam 3000, the camera's exposure should be set manually because the Lifecam will auto-adjust otherwise, making thresholding difficult. This can be done with V4L:

$ sudo apt-get install v4l-utils
$ v4l-ctl -d /dev/video0 -c exposure_auto=1 # 1=DISABLED, 3=ENABLED
$ v4l-ctl -d /dev/video0 -c exposure_absolute=50