这是我用于人脸检测的代码,问题是当我用android调试这段代码时,onFaceDetection方法被多次调用,而face被完美地检测到(当我在方法中放置一个断点时)。但是当我在没有任何断点的情况下运行它时,这个方法只被调用2-3次,并且不会发生人脸检测。任何有关这方面的帮助都将是非常感谢的,因为您可以从我尝试停止并开始人脸检测的代码中看到这一点。
void setFaceDetectionListener() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
mFaceDetectionListener = new Camera.FaceDetectionListener() {
Handler faceDetectionHandler;
@Override
public void onFaceDetection(final Camera.Face[] faces, final Camera camera) {
if(faceDetectionHandler == null){//Initialize
faceDetectionHandler = new Handler();
Toast.makeText(HWTestActivity.this,
UiMessages.MSG_SHOW_YOUR_FACE.toString(),
Toast.LENGTH_SHORT).show();
}
faceDetectionHandler.post(new Runnable() {
@Override
public void run() {
Log.e("faceDetect", "No of faces = " + faces.length);
if (!is_face_detected) {
Toast.makeText(HWTestActivity.this,
UiMessages.MSG_DETECTING_YOUR_FACE.toString(),
Toast.LENGTH_SHORT).show();
is_face_detected = faces.length > 0;
}
if (faces.length > 0) {
Toast.makeText(HWTestActivity.this,
UiMessages.MSG_FACE_DETECTED.toString(),
Toast.LENGTH_SHORT).show();
camera.stopFaceDetection();
} else {
camera.stopFaceDetection();
camera.startFaceDetection();
}
}
});
}
};
}
}发布于 2015-08-12 14:50:32
这是我的无知,很明显,当媒体录音机运行时,你不能让人脸检测运行,所以当你同时用摄像机记录时,男人不会尝试运行人脸检测。
如果您真的想在记录时检测面孔,那么您应该使用
onPreviewFrame(byte[] pixelData, Camera camera)方法中
Camera.PreviewCallback()将pixelData转换为RGB_565位图并将其提供给FaceDetector.findfaces方法。但在我的经验中,我发现这种方法非常不可靠。
https://stackoverflow.com/questions/31943358
复制相似问题