Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有LBP级联的javaCV detectMultiScale在物理设备上不起作用_Android_Opencv_Face Detection_Javacv - Fatal编程技术网

Android 带有LBP级联的javaCV detectMultiScale在物理设备上不起作用

Android 带有LBP级联的javaCV detectMultiScale在物理设备上不起作用,android,opencv,face-detection,javacv,Android,Opencv,Face Detection,Javacv,我的Android应用程序使用javaCV并通过LBP级联调用detectMultiScale()函数来检测人脸。它在我的模拟器上运行完全正常。然而,当我试图在我的HTC S上测试它时,它返回0,无法检测到任何人脸!谁能给我一些提示为什么它不起作用?非常感谢你的帮助 以下是我的人脸检测代码: CASCADE_FILE = working_Dir.getAbsolutePath() + "/lbpcascade_frontalface.xml"; public static Cv

我的Android应用程序使用javaCV并通过LBP级联调用detectMultiScale()函数来检测人脸。它在我的模拟器上运行完全正常。然而,当我试图在我的HTC S上测试它时,它返回0,无法检测到任何人脸!谁能给我一些提示为什么它不起作用?非常感谢你的帮助

以下是我的人脸检测代码:

    CASCADE_FILE = working_Dir.getAbsolutePath() + "/lbpcascade_frontalface.xml";

    public static CvRect getFaceWithLBP(IplImage grayFaceImg)
    {
         CascadeClassifier cascade = new CascadeClassifier(CASCADE_FILE);
         CvRect facesdetection = new CvRect(null);

         cascade.detectMultiScale(grayFaceImg, facesdetection, 1.1, 2, CV_HAAR_FIND_BIGGEST_OBJECT | CV_HAAR_DO_ROUGH_SEARCH, 
                             new CvSize(), new CvSize(grayFaceImg.width(), grayFaceImg.height()));  

         return facesdetection;
    }
请注意,根据,标志(如CV_HAAR_FIND_Maximum_OBJECT | CV_HAAR_DO_ROUGH_SEARCH)不能用于新级联(如LBP级联)

void CascadeClassifier::detectMultiScale(常数矩阵和图像,向量和对象,双尺度因子=1.1,int minNeighbors=3,int标志=0,Size minSize=Size(),Size maxSize=Size()) 参数:

  • 级联–Haar分类器级联(仅限OpenCV 1.x API)。可以使用Load()从XML或YAML文件加载它。当不再需要级联时,使用cvReleaseHaarClassifierCascade(&cascade)将其释放
  • 图像–CV_8U类型的矩阵,包含检测到物体的图像
  • 对象–矩形向量,其中每个矩形包含检测到的对象
  • scaleFactor–指定在每个图像比例下图像大小减小多少的参数
  • minNeighbors–指定每个候选矩形必须保留多少个邻居的参数
  • 标志–参数对于旧级联的含义与函数cvHaarDetectObjects中的含义相同它不用于新的级联。
  • minSize–可能的最小对象大小。小于该值的对象将被忽略
  • maxSize–最大可能对象大小。大于该值的对象将被忽略
请注意,根据,标志(如CV_HAAR_FIND_Maximum_OBJECT | CV_HAAR_DO_ROUGH_SEARCH)不能用于新级联(如LBP级联)

void CascadeClassifier::detectMultiScale(常数矩阵和图像,向量和对象,双尺度因子=1.1,int minNeighbors=3,int标志=0,Size minSize=Size(),Size maxSize=Size()) 参数:

  • 级联–Haar分类器级联(仅限OpenCV 1.x API)。可以使用Load()从XML或YAML文件加载它。当不再需要级联时,使用cvReleaseHaarClassifierCascade(&cascade)将其释放
  • 图像–CV_8U类型的矩阵,包含检测到物体的图像
  • 对象–矩形向量,其中每个矩形包含检测到的对象
  • scaleFactor–指定在每个图像比例下图像大小减小多少的参数
  • minNeighbors–指定每个候选矩形必须保留多少个邻居的参数
  • 标志–参数对于旧级联的含义与函数cvHaarDetectObjects中的含义相同它不用于新的级联。
  • minSize–可能的最小对象大小。小于该值的对象将被忽略
  • maxSize–最大可能对象大小。大于该值的对象将被忽略

关于无法定位面,您可以尝试使用“new CvSize(0,0)”而不是“new CvSize()”。为什么新级联不使用标志?替代方案是什么?唯一定义的标志是Haar级联算法的所有调整:。LBP级联不使用这些选项。关于无法定位面,您可以尝试“new CvSize(0,0)”而不是“new CvSize()”。为什么新级联不使用标志?替代方案是什么?唯一定义的标志是Haar级联算法的所有调整:。LBP级联不使用这些选项。