algorithm - OpenCV 中的人脸识别器

标签 algorithm opencv face-recognition

我在看文章

http://docs.opencv.org/trunk/modules/contrib/doc/facerec/facerec_tutorial.html#conclusion

并尝试运行代码 facerec_lbph.cpp 。但是,我遇到了以下错误:

facerec_lbph.cpp:109:9: error: ‘FaceRecognizer’ was not declared in this scope
facerec_lbph.cpp:109:23: error: template argument 1 is invalid
facerec_lbph.cpp:109:31: error: invalid type in declaration before ‘=’ token
facerec_lbph.cpp:109:58: error: ‘createLBPHFaceRecognizer’ was not declared in this scope
facerec_lbph.cpp:110:10: error: base operand of ‘->’ is not a pointer
facerec_lbph.cpp:113:31: error: base operand of ‘->’ is not a pointer
facerec_lbph.cpp:132:10: error: base operand of ‘->’ is not a pointer
facerec_lbph.cpp:136:27: error: base operand of ‘->’ is not a pointer
facerec_lbph.cpp:144:18: error: base operand of ‘->’ is not a pointer
facerec_lbph.cpp:145:18: error: base operand of ‘->’ is not a pointer
facerec_lbph.cpp:146:18: error: base operand of ‘->’ is not a pointer
facerec_lbph.cpp:147:18: error: base operand of ‘->’ is not a pointer
facerec_lbph.cpp:148:18: error: base operand of ‘->’ is not a pointer
facerec_lbph.cpp:151:35: error: base operand of ‘->’ is not a pointer

OpenCV版本是

opencv-2.3.1-3.fc16.x86_64
opencv-python-2.3.1-3.fc16.x86_64
opencv-devel-2.3.1-3.fc16.x86_64
opencv-devel-docs-2.3.1-3.fc16.noarch

系统版本是fedora 16,64位。我使用的 makefile 是:

CC = g++

SRC = facerec_lbph.cpp
TARGET = main

OBJS = facerec_lbph.o


INCDIRS = -I/usr/include/opencv -I/usr/include/opencv2
LIBDIRS = -L/usr/lib64

CFLAGS = -g $(INCDIRS)
LFLAGS = -lopencv_core -lopencv_highgui -lopencv_video -lopencv_imgproc -lopencv_objdetect -lopencv_ml -lopencv_contrib


all: $(OBJS)
    $(CC) -o $(TARGET) $(OBJS) $(INCDIRS) $(LIBDIRS) $(LFLAGS)
main.o: $(SRC) $(INCLUDE)
    $(CC) -c $(SRC) $(INCLUDE) $(INCDIRS) $(LIBDIRS) $(LFLAGS)

clean:
    rm -f $(TARGET) $(OBJS) *.gch

我可以在需要新信息时更新错误报告。谢谢!

最佳答案

问题是,您使用的是 OpenCV 2.3.1。此 OpenCV 版本还没有 cv::FaceRecognizer,因此可以解释您的错误消息。我强烈建议您更新到 OpenCV 2.4.2。

文档附带了大量示例:

但是,如果您无法更新到最新的 OpenCV 版本,您也可以尝试使用 libfacerec 的 0.03 版| (libfacerec 是我贡献给 OpenCV 的项目)。它兼容所有 OpenCV 2.3 版本。它的界面略有不同,但算法相同。以下是可用的标签,您可以下载:

关于algorithm - OpenCV 中的人脸识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11397606/

相关文章:

regex - 如何处理字符串中的自定义标签并记录格式化信息

c++ - 如何使用 BestOf2NearestMatcher 匹配掩码

python - 如何使用openCV计算箱子的堆叠数

java - [Java-Opencv] : How convert an image from Cartesian space to Polar space?

c++ - 眨眼检测 OpenCV C++

algorithm - 将一个有序的权重列表划分为 N 个权重近似相等的子列表

algorithm - 为什么记忆化不能提高归并排序的运行时间?

java - 找到给定集合的最长单词

opencv - 借助JAVACV计划树立信心

Android camera2人脸检测