我无法在android.hardware.Camera2中找到有关预览面部检测的信息,有人会帮我一个完整的例子吗?
我在github中看到了一些关于camera2示例的问题,但我无法理解它们。
我使用了Google的Camera2示例:https://github.com/googlesamples/android-Camera2Basic。
我将脸部识别模式设置为FULL。
mPreviewRequestBuilder.set(CaptureRequest.STATISTICS_FACE_DETECT_MODE, CameraMetadata.STATISTICS_FACE_DETECT_MODE_FULL);
我还检查了STATISTICS_INFO_MAX_FACE_COUNT
和STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES
:
int max_count = characteristics.get(
CameraCharacteristics.STATISTICS_INFO_MAX_FACE_COUNT);
int modes [] = characteristics.get(
CameraCharacteristics.STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES);
Output: maxCount : 5 , modes : [0, 2]
我的CaptureCallback:
private CameraCaptureSession.CaptureCallback mCaptureCallback = new CameraCaptureSession.CaptureCallback() {
private void process(CaptureResult result) {
Integer mode = result.get(CaptureResult.STATISTICS_FACE_DETECT_MODE);
Face [] faces = result.get(CaptureResult.STATISTICS_FACES);
if(faces != null && mode != null)
Log.e("tag", "faces : " + faces.length + " , mode : " + mode );
}
@Override
public void onCaptureProgressed(CameraCaptureSession session, CaptureRequest request,
CaptureResult partialResult) {
process(partialResult);
}
@Override
public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request,
TotalCaptureResult result) {
process(result);
} `
输出:面部:0,模式:2
public static final int STATISTICS_FACE_DETECT_MODE_FULL = 2;
脸部长度始终为0.看起来它无法正确识别脸部或我遗漏了某些东西。
我知道FaceDetector的方法。我只是想检查它是如何使用新的camera2 Face。
我需要在camera2的预览中检测到脸部!
答案 0 :(得分:0)
我认为您不能使用 CameraMetadata.STATISTICS_FACE_DETECT_MODE_FULL ,因为某些设备不支持此类人脸检测。请,您可以验证您的设备是否支持 STATISTICS_FACE_DETECT_MODE_FULL ?
如果答案为“否”,请尝试使用 STATISTICS_FACE_DETECT_MODE_SIMPLE
看看这个三星的例子 https://developer.samsung.com/galaxy/camera#techdocs
有一个样本说明如何通过camera2 API使用人脸检测