FFI bindings to libccv
Project description
## Build
Clone both `ccv` and `py-ccv`:
```
mkdir ccv_build
cd ccv_build
git clone https://github.com/liuliu/ccv
git clone https://github.com/gpip/py-ccv
```
Patch `ccv` so it can be compiled as a dynamic lib, and compile it:
```
cd ccv/lib
patch -p2 < ../../py-ccv/dynlib.patch
./configure
make libccv.so
```
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 setup.py install
```
## Build only this wrapper
If you already have `libccv.so` 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 `libccv.so` 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 ccv.face_detect.py --help
Usage: face_detect.py [options] filename...
Options:
-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
--quiet
```
##### 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
```
![](http://i.imgur.com/yzcxwqk.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.
Clone both `ccv` and `py-ccv`:
```
mkdir ccv_build
cd ccv_build
git clone https://github.com/liuliu/ccv
git clone https://github.com/gpip/py-ccv
```
Patch `ccv` so it can be compiled as a dynamic lib, and compile it:
```
cd ccv/lib
patch -p2 < ../../py-ccv/dynlib.patch
./configure
make libccv.so
```
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 setup.py install
```
## Build only this wrapper
If you already have `libccv.so` 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 `libccv.so` 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 ccv.face_detect.py --help
Usage: face_detect.py [options] filename...
Options:
-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
--quiet
```
##### 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
```
![](http://i.imgur.com/yzcxwqk.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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ccv-0.0.5.tar.gz
(7.0 kB
view hashes)
Built Distribution
Close
Hashes for ccv-0.0.5-cp27-cp27m-macosx_10_11_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f6b0dd81d1d7ebc7ec5e4736e207c1bfae638560f3ab077731ec2a335ea17e1 |
|
MD5 | da9c549a252a880ef8a5f8f9af5dda8e |
|
BLAKE2b-256 | 80295279624fa16311e4ca1f73b870542080082212af2225ee17ca69ed912de5 |