![pybind11 logo](https://github.com/pybind/pybind11/raw/master/docs/pybind11-logo.png)
# pybind11 — Seamless operability between C++11 and Python
[![Documentation Status](https://readthedocs.org/projects/pybind11/badge/?version=master)](http://pybind11.readthedocs.org/en/master/?badge=master)
[![Documentation Status](https://readthedocs.org/projects/pybind11/badge/?version=stable)](http://pybind11.readthedocs.org/en/stable/?badge=stable)
[![Gitter chat](https://img.shields.io/gitter/room/gitterHQ/gitter.svg)](https://gitter.im/pybind/Lobby)
[![Build Status](https://travis-ci.org/pybind/pybind11.svg?branch=master)](https://travis-ci.org/pybind/pybind11)
[![Build status](https://ci.appveyor.com/api/projects/status/riaj54pn4h08xy40?svg=true)](https://ci.appveyor.com/project/wjakob/pybind11)
**pybind11** is a lightweight header-only library that exposes C++ types in Python
and vice versa, mainly to create Python bindings of existing C++ code. Its
goals and syntax are similar to the excellent
[Boost.Python](http://www.boost.org/doc/libs/1_58_0/libs/python/doc/) library
by David Abrahams: to minimize boilerplate code in traditional extension
modules by inferring type information using compile-time introspection.
The main issue with Boost.Python—and the reason for creating such a similar
project—is Boost. Boost is an enormously large and complex suite of utility
libraries that works with almost every C++ compiler in existence. This
compatibility has its cost: arcane template tricks and workarounds are
necessary to support the oldest and buggiest of compiler specimens. Now that
C++11-compatible compilers are widely available, this heavy machinery has
become an excessively large and unnecessary dependency.
Think of this library as a tiny self-contained version of Boost.Python with
everything stripped away that isn't relevant for binding generation. Without
comments, the core header files only require ~4K lines of code and depend on
Python (2.7 or 3.x, or PyPy2.7 >= 5.7) and the C++ standard library. This
compact implementation was possible thanks to some of the new C++11 language
features (specifically: tuples, lambda functions and variadic templates). Since
its creation, this library has grown beyond Boost.Python in many ways, leading
to dramatically simpler binding code in many common situations.
Tutorial and reference documentation is provided at
[http://pybind11.readthedocs.org/en/master](http://pybind11.readthedocs.org/en/master).
A PDF version of the manual is available
[here](https://media.readthedocs.org/pdf/pybind11/master/pybind11.pdf).
## Core features
pybind11 can map the following core C++ features to Python
- Functions accepting and returning custom data structures per value, reference, or pointer
- Instance methods and static methods
- Overloaded functions
- Instance attributes and static attributes
- Arbitrary exception types
- Enumerations
- Callbacks
- Iterators and ranges
- Custom operators
- Single and multiple inheritance
- STL data structures
- Iterators and ranges
- Smart pointers with reference counting like ``std::shared_ptr``
- Internal references with correct reference counting
- C++ classes with virtual (and pure virtual) methods can be extended in Python
## Goodies
In addition to the core functionality, pybind11 provides some extra goodies:
- Python 2.7, 3.x, and PyPy (PyPy2.7 >= 5.7) are supported with an
implementation-agnostic interface.
- It is possible to bind C++11 lambda functions with captured variables. The
lambda capture data is stored inside the resulting Python function object.
- pybind11 uses C++11 move constructors and move assignment operators whenever
possible to efficiently transfer custom data types.
- It's easy to expose the internal storage of custom data types through
Pythons' buffer protocols. This is handy e.g. for fast conversion between
C++ matrix classes like Eigen and NumPy without expensive copy operations.
- pybind11 can automatically vectorize functions so that they are transparently
applied to all entries of one or more NumPy array arguments.
- Python's slice-based access and assignment operations can be supported with
just a few lines of code.
- Everything is contained in just a few header files; there is no need to link
against any additional libraries.
- Binaries are generally smaller by a factor of at least 2 compared to
equivalent bindings generated by Boost.Python. A recent pybind11 conversion
of PyRosetta, an enormous Boost.Python binding project,
[reported](http://graylab.jhu.edu/RosettaCon2016/PyRosetta-4.pdf) a binary
size reduction of **5.4x** and compile time reduction by **5.8x**.
- When supported by the compiler, two new C++14 features (relaxed constexpr and
return value deduction) are used to precompute function signatures at compile
time, leading to smaller binaries.
- With little extra effort, C++ types can be pickled and unpickled similar to
regular Python objects.
## Supported compilers
1. Clang/LLVM 3.3 or newer (for Apple Xcode's clang, this is 5.0.0 or newer)
2. GCC 4.8 or newer
3. Microsoft Visual Studio 2015 Update 3 or newer
4. Intel C++ compiler 16 or newer (15 with a [workaround](https://github.com/pybind/pybind11/issues/276))
5. Cygwin/GCC (tested on 2.5.1)
## About
This project was created by [Wenzel Jakob](http://rgl.epfl.ch/people/wjakob).
Significant features and/or improvements to the code were contributed by
Jonas Adler,
Sylvain Corlay,
Trent Houliston,
Axel Huebl,
@hulucc,
Sergey Lyskov
Johan Mabille,
Tomasz Miąsko,
Dean Moldovan,
Ben Pritchard,
Jason Rhinelander,
Boris Schäling,
Pim Schellart,
Ivan Smirnov, and
Patrick Stewart.
### License
pybind11 is provided under a BSD-style license that can be found in the
``LICENSE`` file. By using, distributing, or contributing to this project,
you agree to the terms and conditions of this license.
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
系统主要由三个部分组成,第一个部分是对有着特定表情的数据集提取Dlib特征点并进行归一化处理,这个部分主要采集了三个表情的照片,其中包括了喜悦,愤怒,平常。然后每张图片存储136维数据存储进特定编号的TXT方便调用。第二个部分是利用SVM分类器对收集好的TXT文件当中的数据进行分类,训练成XML文件。第三个部分是调用系统的摄像头,读入训练好的XML,对每帧图片进行分类,显示结果,即摄像头采集到人脸的信息之后,可以识别出人做出的表情。
资源推荐
资源详情
资源评论
收起资源包目录
基于opencv的人脸识别系统 (3470个子文件)
WINDOWS_build_and_run_all_unit_tests.bat 856B
.buildinfo 230B
pngrtran.c 167KB
png.c 145KB
pngrutil.c 138KB
pngread.c 130KB
pngwutil.c 87KB
pngwrite.c 72KB
deflate.c 70KB
inflate.c 52KB
pngset.c 46KB
trees.c 43KB
pngpread.c 35KB
pngget.c 32KB
pngerror.c 28KB
pngtrans.c 24KB
infback.c 22KB
gzread.c 18KB
pngwtran.c 17KB
gzlib.c 16KB
gzwrite.c 16KB
inffast.c 13KB
crc32.c 13KB
inftrees.c 13KB
filter_neon_intrinsics.c 11KB
pngmem.c 8KB
zutil.c 7KB
arm_init.c 7KB
pngwio.c 5KB
adler32.c 5KB
pngrio.c 4KB
cblas_zgbmv.c 4KB
cblas_cgbmv.c 4KB
cblas_cgemv.c 4KB
cblas_zgemv.c 4KB
cblas_ztbsv.c 3KB
cblas_ctbsv.c 3KB
cblas_ztbmv.c 3KB
cblas_ctbmv.c 3KB
cblas_dtrsm.c 3KB
cblas_ztrsv.c 3KB
cblas_ztrmv.c 3KB
cblas_ctrsv.c 3KB
cblas_ctrmv.c 3KB
cblas_ztrsm.c 3KB
cblas_ctrsm.c 3KB
cblas_ztrmm.c 3KB
cblas_strsm.c 3KB
cblas_dtrmm.c 3KB
cblas_ctrmm.c 3KB
cblas_strmm.c 3KB
cblas_ztpsv.c 3KB
cblas_ctpsv.c 3KB
cblas_ztpmv.c 3KB
cblas_ctpmv.c 3KB
cblas_zhbmv.c 3KB
cblas_chbmv.c 3KB
cblas_zhemv.c 3KB
cblas_chemv.c 3KB
cblas_zher2.c 3KB
cblas_cher2.c 3KB
cblas_zhpmv.c 3KB
cblas_chpmv.c 3KB
cblas_zhpr2.c 3KB
cblas_chpr2.c 3KB
cblas_stbmv.c 3KB
cblas_dtbsv.c 3KB
cblas_stbsv.c 3KB
cblas_dtbmv.c 3KB
cblas_dtrmv.c 3KB
cblas_strmv.c 3KB
cblas_dtrsv.c 3KB
cblas_strsv.c 3KB
cblas_sgemm.c 3KB
cblas_stpmv.c 3KB
cblas_dtpsv.c 3KB
cblas_dtpmv.c 3KB
cblas_stpsv.c 3KB
cblas_cgemm.c 3KB
cblas_zgemm.c 3KB
cblas_dgemm.c 3KB
compress.c 2KB
cblas_ssyr2k.c 2KB
cblas_zher2k.c 2KB
cblas_cher2k.c 2KB
cblas_dsyr2k.c 2KB
cblas_csyr2k.c 2KB
cblas_zsyr2k.c 2KB
cblas_ssyrk.c 2KB
cblas_ssymm.c 2KB
cblas_dsyrk.c 2KB
cblas_zherk.c 2KB
cblas_zsyrk.c 2KB
cblas_csyrk.c 2KB
cblas_cherk.c 2KB
cblas_dsymm.c 2KB
cblas_zsymm.c 2KB
cblas_csymm.c 2KB
cblas_zhemm.c 2KB
cblas_chemm.c 2KB
共 3470 条
- 1
- 2
- 3
- 4
- 5
- 6
- 35
资源评论
weixin_38902664
- 粉丝: 27
- 资源: 57
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功