OpenCV自带的例程中有人脸识别的例程,源文件为
path/opencv-3.4.1/samples/cpp/facedetect.cpp
通过cmake编译之后生成可行性文件,执行时需要指定分类器文件,该文件存放在
opencv-3.4.1/data/haarcascades/haarcascade_frontalface_alt2.xml /*正面人脸分类文件*/
opencv-3.4.1/data/haarcascades/haarcascade_eye.xml /*人眼分类文件*/
若要自己生成该文件,可参考《OpenCV–训练分类器》
人眼识别是该例程中添加的,如果不用可以自己修改源码去掉即可。
完整的启动命令如下:
./opencv_example --cascade="/home/lxm/Templates/opencv-3.4.1/data/haarcascades/haarcascade_frontalface_alt2.xml" --nested-cascade="/home/lxm/Templates/opencv-3.4.1/data/haarcascades/haarcascade_eye_tree_eyeglasses.xml" --scale=1.3 ../img/people.jpg
除了两个分类文件之外,还有参数scale和filename;
scale是缩放系数,数值越大,则运算越快,但识别度会下降。
filename参数指定输入文件,若不指定则默认尝试打开摄像头,若摄像头不存在则尝试加载默认图片。
我的测试结果如下: