一、stasm
stasm是寻找人脸特征的C++开源库,实现了ASM模型和AAM模型。使用Stasm需要编译好的openCV。
二、编译方法
1. 将从官网下载的源代码解压至文件夹stasm4.1.0。
2. 将辅助编译文件同样复制到文件夹stasm4.1.0下。此步完成后文件夹里内容如下:
3. 打开CMake,输入源文件地址和生成文件存放地址,点configure。示例见下图第1个框
4. 根据CMake提示,补充opencv地址。示例见上图
5. CMake不报红后,点击Generate.
6. 打开生成的STASM.sln,右击ALL BUILD--rebuild。如果报错,请参见第七条解决办法。
7. 如提示psapi.h错误,解决办法是:
打开tasm文件夹下的appmem.cpp,将头文件引用改为以下内容:
- #include "stasm.h"
- #include "appmisc.h"
- #include <Windows.h>
- #if _MSC_VER // microsoft compiler
- #include <psapi.h> // for OpenProcess and GetProcessMemoryInfo
- #pragma comment(lib,"psapi.lib")
- #endif
8. 编译完成
三、stasm.lib的使用(以minimal为例)
stasm自带minimal程序,用户可以根据此程序进行试运行。将stasm4.1.0中的stasm_lib.h复制到上面编译好带有stasm.lib的文件夹(debug文件夹)中。
1、新建项目,将minimal.cpp包含进项目中;
2、在项目中对opencv进行配置(包含目录,库目录,附加库目录,附加依赖项)
3、同理,对stasm进行配置(同上)
4、完成上述过程即可正常运行。
注意:1、本人电脑上有opencv3,在编译stasm时不能正常编译,还需待研究!目前用的是opencv249
2、上述配置过程中,如果附加依赖项将不带尾缀d的lib附加进来的话,会导致读取图片、写图片、显示图片出现问题!从网上查到的原因是:opencv包含的库在debug下优先找的是release的版本。 处理方法:在debug下,链接库lib中,删掉不带d.lib的版本。保留所有带d的。因为debug版本有一些没有做优化导致内存有问题。