我做了一个应用程序来检测脸部并在脸部周围画一个矩形。问题是它只能检测某个位置上的脸部,也就是说,我可以在某个位置检测到脸部的细胞,但是当我旋转时它会停止检测。我该如何检测android的使用opencv,从相机的所有位置的面孔?
我想知道是否有一个算法,让我发现在任何位置的脸,我无论躺着,面朝上,等...
正在使用frontalFace.xml的XML。
vector<Rect> detectedFaces;
detectedFaces.clear();
frontalFaceClassifier.detectMultiScale(dst, detectedFaces,
1.5, 3, 2 | CV_HAAR_SCALE_IMAGE , Size(90,90));
qDebug()<<"Cantidad de caras en el vector : " << detectedFaces.size();
if(detectedFaces.size() > 0){
actualFace = detectedFaces.at(0);
countDetectedFaces++;
qDebug()<<"**********qwerty**********"<<detectedFaces.size()<<"----------";
}
for(int i=0;i<detectedFaces.size();i++)
{
// Dibujar un cuadrado en la zona en donde se detecta la cara.
Rect dibujarCuadrado = detectedFaces.at(i);
cv::rectangle (mat, dibujarCuadrado, 20, 1, LINE_8, 0);
}