Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

FFI bindings to libccv

Project Description
## Build

Clone both `ccv` and `py-ccv`:

mkdir ccv_build
cd ccv_build
git clone
git clone

Patch `ccv` so it can be compiled as a dynamic lib, and compile it:

cd ccv/lib
patch -p2 < ../../py-ccv/dynlib.patch

Build and install the Python wrapper (`ARCHFLAGS` was used on a OSX build, adjust for your platform):

cd ../../py-ccv
ARCHFLAGS='-arch x86_64' INCDIR=../ccv/lib LIBDIR=../ccv/lib python install

## Build only this wrapper

If you already have `` then you might want to install directly via pip:

LDFLAGS="-L$(pwd)/ccv/lib" CFLAGS="-I$(pwd)/ccv/lib" pip install ccv

Remember to adjust the paths according to where `` and `ccv.h` are installed in your system.

## Face Detection Usage

(`DYLD_LIBRARY_PATH` was used on OSX, adjust it for your platform)

##### Face detection using SCD

$ DYLD_LIBRARY_PATH=../ccv/lib python -m ccv.face_detect -c ../ccv/samples/face.sqlite3 img/lena.png
img/lena.png Feature(x1=229, y1=216, x2=381, y2=368, confidence=5.014610767364502)

##### Face detection using BBF

$ DYLD_LIBRARY_PATH=../ccv/lib python -m ccv.face_detect --bbf -c ../ccv/samples/face img/lena.png
img/lena.png Feature(x1=230, y1=211, x2=384, y2=365, confidence=0.4947386682033539)

##### Help

$ DYLD_LIBRARY_PATH=../ccv/lib python -m --help
Usage: [options] filename...

-h, --help show this help message and exit
--bbf Use BBF detector
--scd Use SCD detector
-c CASCADE, --cascade=CASCADE
Path to cascade to read

##### Using face_detect as a library

from ccv import face_detect

names = ['img/lena.png']
result = face_detect.main('scd', '../ccv/samples/face.sqlite3', False, *names)

# face_detect.main is a generator which yields tuples of
# (<filename>, [<list of face_detect.Feature>])
for name, rects in result:
print name, rects

##### Visualization

This wrapper does not include an utility to draw the resulting rectangles, so the following example uses ImageMagick:

$ convert img/lena.png -fill none -stroke blue -strokewidth 3 -draw "rectangle 229,216 381,368" result.png


## Using the library

import sys
from ccv import ccv_read, ccv_write, sobel, lib

# Read file passed.
inp = ccv_read(sys.argv[1])
# Apply Sobel.
res = sobel(inp, lib.CCV_8U)
# Save the result as "sobel.jpg"
ccv_write(res, "sobel.jpg")

Pointers returned by the higher level wrapper, `ccv`, are automatically freed.
Release History

Release History

This version
History Node


History Node


History Node


Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
ccv-0.0.5-cp27-cp27m-macosx_10_11_intel.whl (16.3 kB) Copy SHA256 Checksum SHA256 2.7 Wheel Apr 10, 2016
ccv-0.0.5.tar.gz (7.0 kB) Copy SHA256 Checksum SHA256 Source Apr 10, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting