在我的应用程序中,我将实现人脸识别登录...所以我使用 openCV 库来识别人脸...请通过示例代码和教程帮助我做到这一点...。
提前致谢
在我的应用程序中,我将实现人脸识别登录...所以我使用 openCV 库来识别人脸...请通过示例代码和教程帮助我做到这一点...。
提前致谢
好吧,我和我的同事去年对人脸识别进行了一些调查,这些是我们关于使用集成识别工具与 JavaCV(OpenCV 的 Java 绑定)的一些考虑:
请查看以下教程
希望能帮助到你 :)
您可以使用 NDK 来使用 C/C++ OpenCV API
void DetectMyFace ()
{
// image structure in opencv
IplImage *inImg = 0;
// face detector classifer
CvHaarClassifierCascade *clCascade = 0;
CvMemStorage *mStorage = 0;
CvSeq *faceRectSeq;
inImg = cvLoadImage("2.jpg");
mStorage = cvCreateMemStorage(0);
clCascade = (CvHaarClassifierCascade *)cvLoad("haarcascade_frontalface_default.xml", 0, 0, 0);
if ( !inImg || !mStorage || !clCascade )
{
printf("Initilization error : %s" , (!inImg)? "cant load image" : (!clCascade)?
"cant load haar cascade" :
"unable to locate memory storage");
return;
}
faceRectSeq = cvHaarDetectObjects(inImg,clCascade,mStorage,
1.2,
3,
CV_HAAR_DO_CANNY_PRUNING,
cvSize(25,25));
const char *winName = "Display Face";
cvNamedWindow(winName,CV_WINDOW_AUTOSIZE);
for ( int i = 0; i < (faceRectSeq ? faceRectSeq -> total:0); i++ )
{
CvRect *r = (CvRect*)cvGetSeqElem(faceRectSeq,i);
CvPoint p1 = { r->x, r->y };
CvPoint p2 = { r->x + r->width, r->y + r->height };
cvRectangle(inImg,p1,p2,CV_RGB(0,255,0),1,4,0);
}
cvShowImage(winName, inImg);
cvWaitKey(0);
cvDestroyWindow(winName);
// release the variables
cvReleaseImage(&inImg);
if(clCascade) cvReleaseHaarClassifierCascade(&clCascade);
if(mStorage) cvReleaseMemStorage(&mStorage);
}
我已经使用 OpenCV 制作了一个用于人脸识别的 Android 应用程序。你可以看看:https ://github.com/yaylas/AndroidFaceRecognizer