Linux环境下使用OpenCV做人脸识别的小项目
Posted 果果小师弟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux环境下使用OpenCV做人脸识别的小项目相关的知识,希望对你有一定的参考价值。
一、搭建opencv的环境
前提是你的linux下有opencv的环境,如果没有请自行搭建,下面是我搭建opencv是的流程,大家可以作为参考。
安装opencv
cd /home/zhiguoxin/
mkdir opencv
chmod 777 -R opencv/
cd opencv/
cp opencv-3.4.12.zip /home/zhiguoxin/opencv/
unzip opencv-3.4.12.zip
# 安装依赖
sudo apt-get update 从服务器获取软件列表,并在本地保存为文件。这个命令,会读取软件仓库的所有源列表,然后保存在本机。方便本机用户检索、对比。
sudo apt-get upgrade 本地安装软件与本地软件列表对比,如本地安装版本低,会提示更新。将本地安装软件与本地软件列表对比,如本地安装版本低,会提示更新。
sudo apt-get install build-essential
sudo apt-get install libavcodec-dev
sudo apt-get install libavformat-dev
sudo apt-get install libswscale-dev
sudo aptitude install libgtk2.0-dev
sudo apt-get install libjpeg.dev
sudo apt-get install libtiff5.dev
sudo apt-get install libjasper-de
# 在opencv目录下创建build文件夹
mkdir build
# 进入build文件夹
cd build
# 使用cmake编译参数
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
# 使用make创建编译(时间很长)
sudo make -j4
# 执行命令
sudo make install
# 修改 opencv.conf 文件
sudo gedit /etc/ld.so.conf.d/opencv.conf
打开后的文件是空的,添加 opencv 库的安装路径:/usr/local/lib ,保存退出
/usr/local/lib
# 执行如下命令使得刚才的配置路径生效
sudo ldconfig
# 修改 bash.bashrc 文件
sudo gedit /etc/bash.bashrc
# 在bash.bashrc 文件最末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
# 保存退出,执行如下命令使得配置生效
source /etc/bash.bashrc
# 更新一下
sudo updatedb
# 至此所有的配置都已经完成。不放心的话可以查看一下opencv版本信息
pkg-config --modversion opencv
二、编写代码
1、新建opencv_face.cpp
文件
vim opencv_face.cpp
2、查看摄像头是否打开
ls dev/vide0
3、编写程序
#include<opencv2/opencv.hpp>
#include<vector>
using namespace cv;
int main()
VideoCapture cam(0);
namedwindow("video");
//加载级联分类器
CascadeClassifier classifier("/home/zhiguoxin/opencv/opencv-3.4.12/data/haarcascades/haarcascade_frontalface_default.xml");
Mat image; //存放真彩图
Mat gray; //存放灰度图
while(1)
cam >> image;
cvtColor(image,gray,COLOR_BGR2GRAY); //把真彩图转传成灰度图
equalizeHist(gray,gray); //均衡化
std::vector<Rect> faces;
classifier.detectMultiScale(gray, faces); //检测人脸
if(faces. size())
rectangle(image, faces[0],Scalar(0,0,255)); //画框
imshow("video",image);//显示图像
if(waitKey(25)!= 255)
break;
return 0;
4、编译
g++ opencv_face.cpp -o opencv_face -lopencv_core -lopencv_videoio -lopencv_highgui -lopencv_objdetect -lopencv_imgproc
5、运行
./opencv_face
结果如下图
以上是关于Linux环境下使用OpenCV做人脸识别的小项目的主要内容,如果未能解决你的问题,请参考以下文章
想做人脸识别的开发,有没有android的功能全的人脸识别SDK?