Skip to main content

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.

Project details

Download files

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

Files for ccv, version 0.0.5
Filename, size File type Python version Upload date Hashes
Filename, size ccv-0.0.5-cp27-cp27m-macosx_10_11_intel.whl (16.3 kB) File type Wheel Python version 2.7 Upload date Hashes View
Filename, size ccv-0.0.5.tar.gz (7.0 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page