gpt4 book ai didi

android - 从 CameraSource 裁剪面部

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:19 24 4
gpt4 key购买 nike

我正在实现 google-vision face tracker 中给出的示例.MyFaceDetector 类:

public class MyFaceDetector extends Detector<Face> {
private Detector<Face> mDelegate;

MyFaceDetector(Detector<Face> delegate) {
mDelegate = delegate;
}

public SparseArray<Face> detect(Frame frame) {
return mDelegate.detect(frame);
}

public boolean isOperational() {
return mDelegate.isOperational();
}

public boolean setFocus(int id) {
return mDelegate.setFocus(id);
}

}

FaceTrackerActivity 类:

private void createCameraSource() {

imageView = (ImageView) findViewById(R.id.face);

FaceDetector faceDetector = new FaceDetector.Builder(this).build();
myFaceDetector = new MyFaceDetector(faceDetector);
myFaceDetector.setProcessor(new MultiProcessor.Builder<>(new GraphicFaceTrackerFactory())
.build());
mCameraSource = new CameraSource.Builder(this, myFaceDetector)
.setRequestedPreviewSize(640, 480)
.setFacing(CameraSource.CAMERA_FACING_FRONT)
.setRequestedFps(60.0f)
.build();

if (!myFaceDetector.isOperational()) {
Log.w(TAG, "Face detector dependencies are not yet available.");
}
}

我需要裁剪面部并将其设置在 ImageView 上。我无法在此处实现我的自定义 Frameframe.getBitmap()detect(Frame frame) 中总是返回 null。我如何实现这一目标?

最佳答案

frame.getBitmap() 只有在框架最初是从位图创建的情况下才会返回一个值。 CameraSource 以 ByteBuffers 而不是位图的形式提供图像信息,因此这是可用的图像信息。

frame.getGrayscaleImageData() 将返回图像数据。

frame.getMetadata() 将返回元数据,例如图像尺寸和图像格式。

关于android - 从 CameraSource 裁剪面部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43632752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com