Man*_*gan 9 android android-camera firebase firebase-mlkit
我已将MLkit FaceDetection集成到我的Android应用程序中.我在下面提到过URL
https://firebase.google.com/docs/ml-kit/android/detect-faces
面部检测处理器类的代码是
import java.io.IOException;
import java.util.List;
/** Face Detector Demo. */
public class FaceDetectionProcessor extends VisionProcessorBase<List<FirebaseVisionFace>> {
private static final String TAG = "FaceDetectionProcessor";
private final FirebaseVisionFaceDetector detector;
public FaceDetectionProcessor() {
FirebaseVisionFaceDetectorOptions options =
new FirebaseVisionFaceDetectorOptions.Builder()
.setClassificationType(FirebaseVisionFaceDetectorOptions.ALL_CLASSIFICATIONS)
.setLandmarkType(FirebaseVisionFaceDetectorOptions.ALL_LANDMARKS)
.setTrackingEnabled(true)
.build();
detector = FirebaseVision.getInstance().getVisionFaceDetector(options);
}
@Override
public void stop() {
try {
detector.close();
} catch (IOException e) {
Log.e(TAG, "Exception thrown while trying to close Face Detector: " + e);
}
}
@Override
protected Task<List<FirebaseVisionFace>> detectInImage(FirebaseVisionImage image) {
return detector.detectInImage(image);
}
@Override
protected void onSuccess(
@NonNull List<FirebaseVisionFace> faces,
@NonNull FrameMetadata frameMetadata,
@NonNull GraphicOverlay graphicOverlay) {
graphicOverlay.clear();
for (int i = 0; i < faces.size(); ++i) {
FirebaseVisionFace face = faces.get(i);
FaceGraphic faceGraphic = new FaceGraphic(graphicOverlay);
graphicOverlay.add(faceGraphic);
faceGraphic.updateFace(face, frameMetadata.getCameraFacing());
}
}
@Override
protected void onFailure(@NonNull Exception e) {
Log.e(TAG, "Face detection failed " + e);
}
}
Run Code Online (Sandbox Code Playgroud)
在"onSuccess"监听器中,我们将获得"FirebaseVisionFace"类对象的数组,这些对象将具有"边界框"的面部.
@Override
protected void onSuccess(
@NonNull List<FirebaseVisionFace> faces,
@NonNull FrameMetadata frameMetadata,
@NonNull GraphicOverlay graphicOverlay) {
graphicOverlay.clear();
for (int i = 0; i < faces.size(); ++i) {
FirebaseVisionFace face = faces.get(i);
FaceGraphic faceGraphic = new FaceGraphic(graphicOverlay);
graphicOverlay.add(faceGraphic);
faceGraphic.updateFace(face, frameMetadata.getCameraFacing());
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何将此FirebaseVisionFace对象转换为Bitmap.我想提取脸部图像并在ImageView中显示它.谁能帮帮我吗 .提前致谢.
注意:我从下面的URL下载了MLKit android的示例源代码
https://github.com/firebase/quickstart-android/tree/master/mlkit
您是FirebaseVisionImage从位图创建的。返回检测结果后,每个FirebaseVisionFace边界框都将其描述为一个边界框Rect,您可以使用该边界框从原始位图提取检测到的面部,例如使用Bitmap.createBitmap()。
| 归档时间: |
|
| 查看次数: |
1927 次 |
| 最近记录: |