private void setCameraType(CameraImageSource cameraImageSource) { // TODO 选择使用前置摄像头 // cameraImageSource.getCameraControl().setCameraFacing(ICameraControl.CAMERA_FACING_FRONT); // TODO 选择使用usb摄像头 cameraImageSource.getCameraControl().setCameraFacing(2); // 如果不设置,人脸框会镜像,显示不准 previewView.getTextureView().ScaleX = -1; // TODO 选择使用后置摄像头 // cameraImageSource.getCameraControl().setCameraFacing(ICameraControl.CAMERA_FACING_BACK); // previewView.getTextureView().setScaleX(-1); }
private void init() { Intent intent = getIntent(); if (intent != null) { groupId = intent.GetStringExtra("group_id"); } faceDetectManager = new FaceDetectManager(this); // 从系统相机获取图片帧。 CameraImageSource cameraImageSource = new CameraImageSource(this); // 图片越小检测速度越快,闸机场景640 * 480 可以满足需求。实际预览值可能和该值不同。和相机所支持的预览尺寸有关。 // 可以通过 camera.getParameters().getSupportedPreviewSizes()查看支持列表。 cameraImageSource.getCameraControl().setPreferredPreviewSize(1280, 720); // cameraImageSource.getCameraControl().setPreferredPreviewSize(640, 480); // 设置最小人脸,该值越小,检测距离越远,该值越大,检测性能越好。范围为80-200 FaceSDKManager.getInstance().getFaceDetector().MinFaceSize = (100); // FaceSDKManager.getInstance().getFaceDetector().setNumberOfThreads(4); // 设置预览 cameraImageSource.setPreviewView(previewView); // 设置图片源 faceDetectManager.setImageSource(cameraImageSource); // 设置人脸过滤角度,角度越小,人脸越正,比对时分数越高 faceDetectManager.getFaceFilter().setAngle(20); textureView.SetOpaque(false); // 不需要屏幕自动变黑。 textureView.setKeepScreenOn(true); bool isPortrait = Resources.Configuration.Orientation == Android.Content.Res.Orientation.Portrait; if (isPortrait) { previewView.setScaleType(ScaleType.FIT_WIDTH); // 相机坚屏模式 cameraImageSource.getCameraControl().setDisplayOrientation(CameraView.ORIENTATION_PORTRAIT); } else { previewView.setScaleType(ScaleType.FIT_HEIGHT); // 相机横屏模式 cameraImageSource.getCameraControl().setDisplayOrientation(CameraView.ORIENTATION_HORIZONTAL); } setCameraType(cameraImageSource); }
private void init() { faceDetectManager = new FaceDetectManager(this); // 从系统相机获取图片帧。 CameraImageSource cameraImageSource = new CameraImageSource(this); // 图片越小检测速度越快,闸机场景640 * 480 可以满足需求。实际预览值可能和该值不同。和相机所支持的预览尺寸有关。 // 可以通过 camera.getParameters().getSupportedPreviewSizes()查看支持列表。 cameraImageSource.getCameraControl().setPreferredPreviewSize(1280, 720); // 设置最小人脸,该值越小,检测距离越远,该值越大,检测性能越好。范围为80-200 previewView.setMirrored(false); // 设置预览 cameraImageSource.setPreviewView(previewView); // 设置图片源 faceDetectManager.setImageSource(cameraImageSource); faceDetectManager.setUseDetect(true); textureView.SetOpaque(false); // 不需要屏幕自动变黑。 textureView.KeepScreenOn = true; bool isPortrait = Resources.Configuration.Orientation == Android.Content.Res.Orientation.Portrait; if (isPortrait) { previewView.setScaleType(ScaleType.FIT_WIDTH); // 相机坚屏模式 cameraImageSource.getCameraControl().setDisplayOrientation(0); } else { previewView.setScaleType(ScaleType.FIT_HEIGHT); // 相机横屏模式 cameraImageSource.getCameraControl().setDisplayOrientation(1); } setCameraType(cameraImageSource); }