Use OpenCV to create a GUI testing framework - replaces Sikuli, Xpresser
C Python Shell
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
debian Update build dependencies for Python Aug 28, 2012
docs Add initial and documentation Aug 14, 2012
examples Fix libmath and X11 libs not being linked Jun 10, 2013
include Update other documentation to reflect the new Python wrapper Aug 17, 2012
libcvautomation Fixed coding standard Jul 25, 2013
m4 Add the python build into Automake to make it portable Aug 14, 2012
python Fix up the Python frame tracing, and make it more portable Aug 23, 2012
rpm Fix up the specfile to build on 32-bit Aug 30, 2012
scripts Update scripts/ Jan 14, 2013
.gitignore git status clean after build Jul 21, 2013
AUTHORS Finish up preparations for release 1.0 Jun 28, 2012
COPYING Put copyright information in one place Jul 23, 2012
ChangeLog Fix the debian build process up Aug 17, 2012
INSTALL Finish up preparations for release 1.0 Jun 28, 2012 Set up distributing the python bindings Aug 13, 2012
NEWS Finish up preparations for release 1.0 Jun 28, 2012
README Update README Feb 6, 2014 Update the README to link to documentation Jul 11, 2013 Fix a minor ordering issue with autogen Jun 23, 2012 Begin version 2.1 of libcvautomation Oct 11, 2012 Fix how library dependencies are built Jul 23, 2012
libcvautomation_funcs Fix breaking on filenames with spaces Sep 7, 2012 Fix a minor issue with the packaging script Aug 3, 2012 Commit scripts to help building packages Jul 30, 2012


Use OpenCV to create a GUI testing framework - replaces Sikuli, Xpresser

Why I'm doing this

In trying to create an application testing framework for the MOSAIC team at the University of North Carolina at Charlotte, I was very discouraged by what was currently offered.

Sikuli represented some great ideas, and the built-in IDE was great. Problem being, it crashed whenever I tried to create the first screenshot. Xpresser also looked like it could be great, but died pretty quickly too. Plus, neither of these programs ran on the Prominent North American Enterprise Linux Vendor's software platform.

As such, starting with a sample OpenCV program to recognize sub-images, I'm attempting to create a GUI testing framework that's more stable, no-questions-asked, simple, and otherwise just usable (specifically from BASH - don't make things more complicated than they need to be.)

How it works

OpenCV is used for image processing, and XTestExtension is used for driving X11. Reference implementations are given, and they are fairly full-featured.

Installation Instructions


Place the following content into a file named /etc/yum.repos.d/libcvautomation.repo:

name=Libcvautomation RPM repository


Place the following lines into your /etc/apt/sources.list:

#Libcvautomation Repository
deb libcvautomation/
deb-src libcvautomation-source/ 


The tarball can be downloaded from the downloads page. Once you have it, just ./configure; make; make install

API Documentation

Github hosts the documentation, and it can be found here

Where we're headed

At this point, pretty much everything is functionally done. Python bindings to make interfacing with the library simpler have been developed, and it should mostly be bugfixes from here out. If there are any suggestions, please let me know!

Get in contact

If you have a suggestion, comment, question, concern, or otherwise, feel free to email me at This product is developed with the community in mind, so if there's any feedback to be had I welcome it.