1

我想测试 Flandmarks 的面部检测 http://cmp.felk.cvut.cz/~uricamic/flandmark/但我无法让它工作。

我已经为此工作了大约 10 个小时。我在 opencv.org 上寻求帮助(http://answers.opencv.org/question/16956/eye-detection-is-jumping/,这个问题首先是关于其他事情的,如果你想阅读所说的话,请参阅评论关于这个问题)并得到了一些帮助,但问题仍然存在。

计算机:64 位,Windows 7,Visual Studio 2010。

我试过的:

由于这个问题,我被要求尝试一个空项目,所以我这样做了。

我在visual studio c++ 2010中开始了一个空项目。属性管理器->在C/C++下添加->附加包含目录:

* C:\Program Files (x86)\opencv\build\include
* C:\Program Files (x86)\opencv\build\include\opencv
* C:\Program Files (x86)\opencv\build\include\opencv2

属性管理器-> 链接器-> 附加包含目录->

* C:\Program Files (x86)\opencv\build\x64\vc10\lib;
* C:\Program Files (x86)\opencv\build\x64\vc10\bin; 
* %(AdditionalLibraryDirectories)

属性管理器 -> 链接器 -> 输入 -> 附加依赖项 ->

* opencv_calib3d244d.lib
* opencv_contrib244d.lib
* opencv_core244d.lib
* opencv_features2d244d.lib
* opencv_flann244d.lib
* opencv_gpu244d.lib
* opencv_haartraining_engined.lib
* opencv_highgui244d.lib
* opencv_imgproc244d.lib
* opencv_legacy244d.lib
* opencv_ml244d.lib
* opencv_nonfree244d.lib
* opencv_objdetect244d.lib
* opencv_photo244d.lib
* opencv_stitching244d.lib
* opencv_ts244d.lib
* opencv_video244d.lib
* opencv_videostab244d.lib

物业管理器 -> 配置管理器 -> 主动解决方案平台 ->

  • 从win32更改为“new”,我从Itanium更改为x64。从“win32”复制设置

从您可以在 flandmarks 主页下载的 zip 文件中,我将文件复制到文件夹“libflandmark”中。到我的项目文件夹。我还将 dat 文件复制到项目文件夹中。

* flandmark_detector.cpp
* flandmark_detector.h
* liblbp.cpp
* liblbp.h
* msvc-compat.h
* flandmark_model.dat

我在其中添加了一个 main.cpp:

#include "stdio.h"
#include "flandmark_detector.h"


int main(int argc, char * argv[]) 
{ 
    printf("test");
    FLANDMARK_Model * model = flandmark_init("flandmark_model.dat");

    return 0;
}

在此之后,错误是:

1>  All outputs are up-to-date.
1>main.obj : error LNK2019: unresolved external symbol "struct model_struct * __cdecl flandmark_init(char const *)" (?flandmark_init@@YAPEAUmodel_struct@@PEBD@Z) referenced in function main
1>C:\projects\test_projects\flandmarks_empty\x64\Debug\flandmarks_empty.exe : fatal error LNK1120: 1 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:04.47
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

谢谢阅读!

4

1 回答 1

2

编译器正在寻找 flandmart_init(char const *)。您需要包含定义此函数的头文件。如果您已经包含了它的头文件,那么编译器将找不到函数 flandmart_init() 的定义位置。现在,如果您有 flandmark_detector.cpp 和 flandmark_model.cpp,因为这看起来像是第三方代码。包含它们的头文件,然后包含在您的项目 flandmark_model.cpp 和 flandmark_model.cpp 中,以定义函数 flandmart_init(char const *) 为准。确保它编译。将它们与您的 .cpp 文件一起添加。您可以右键单击项目上的源文件,然后单击;添加->现有项目。

于 2013-07-19T01:37:49.903 回答