小白练手2

一、人脸识别代码模块

#include "face.h"

using namespace std;
using namespace cv;
using namespace aip;

int main()
{
	VideoCapture cap(0);// open the default camera, 0--The number of camera
	if(!cap.isOpened())// check if we succeeded
	{	
		cout <<" camera open failed!" << endl;
		return -1;
	}	
	
	cout << "camera open success!" << endl;

	Mat img;

	Mat grayImag;

	Mat equalizeImag;
	
	CascadeClassifier classifier("/usr/share/opencv/haarcascades/haarcascade_frontalface_alt2.xml");//class

	vector<Rect> allFace;//the list of face

	Mat faceImag;
	
	vector<uchar> jpgBuf;

	std::string app_id = "43368035";//引入百度智慧云,需要id、api_key、secret_key(可在百度智慧云上注册,下载)

    	std::string api_key = "ttIUquP6W3aPMEGmx91nIerY";

    	std::string secret_key = "a8gawX0cVKYGalGepfIHLyWUeAPxastt";

    	aip::Face client(app_id, api_key, secret_key);

	std::string base64Imag;

	Json::Value result;

	for(;;)
	{
	
		cap >> img; //get a new frame camera

		cvtColor(img,grayImag, CV_BGR2GRAY);//图片黑白化

		equalizeHist(grayImag,equalizeImag);//调节背景与人脸区别,易采集人脸
		
		classifier.detectMultiScale(equalizeImag,allFace);//把采集到的图像传给linux系统自带的人脸检测
		
		if(allFace.size())

		{
		rectangle(equalizeImag, allFace[0],Scalar(255,255,0));//blue, gree,red,用矩形框把人脸给框起来,设置矩形框的颜色

		faceImag = equalizeImag(allFace[0]);
	
		imencode(".jpg",faceImag,jpgBuf);//对采集到的图像进行编码,从Mat格式转化成jpg形式,

		base64Imag = base64_encode((char *)jpgBuf.data(), jpgBuf.size());//对于百度智慧云,只识别base64格式图片,所以要再次转换
		
		result = client.search(base64Imag, "BASE64", "student",aip::null);//百度智慧云人脸识别中进行搜索

		cout << result << endl;
		
		}
		
		imshow ("video",equalizeImag);/* "video"--name of the window,	
					img--image to be show;*/

		waitKey(42); // delay 42s     		
	}

	

	
	return(0);
	
}

二、linux系统下载模块

linux系统下引入智慧云需要下载SDK,以及其他数据库,具体链接如下:1.https://cloud.baidu.com/doc/FACE/s/Uk37c1r11
2.linux系统安装安装依赖库libcurl(需要支持https) openssl jsoncpp
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install openssl
sudo apt-get install libjsoncpp-dev
3.对SDK下的文件aip-cpp-sdk-4.16.6中的face.h进行修改

std::string _face_search = "https://aip.baidubce.com/rest/2.0/face/v3/search";

4.运行程序:
g++ main.cpp -o main -lopencv_highgui -lopencv_core -lopencv_imgproc -lopencv_objdetect -std=c++11 -lcurl -lcrypto -ljsoncpp
./main

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值