Azure Face API SDK получает фотографию в Android после проверкиAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Azure Face API SDK получает фотографию в Android после проверки

Сообщение Anonymous »

Я внедряю систему живости, но мне нужно сделать фотографию на момент проверки, но я не нашел способа это сделать, даже пытался получить «распечатку» превью на Android но оно отображается на поверхности, при каждой попытке я всегда возвращал пустое изображение.
Есть ли способ сохранить это изображение на Android во время проверки?
В примерах это делается так:

Код: Выделить всё

open class LivenessActivity : AppCompatActivity() {
...
override fun onResume() {
super.onResume()
if (mFaceAnalyzer == null) {
initializeConfig()
val visionSourceOptions = VisionSourceOptions(this, this as LifecycleOwner)
// preview on surfaceView
visionSourceOptions.setPreview(mSurfaceView)
mVisionSource = VisionSource.fromDefaultCamera(visionSourceOptions)
displayCameraOnLayout()
createFaceAnalyzer()

}
startAnalyzeOnce()
}

private fun displayCameraOnLayout() {
val previewSize = mVisionSource?.cameraPreviewFormat
val params = mCameraPreviewLayout.layoutParams as ConstraintLayout.LayoutParams
params.dimensionRatio = previewSize?.height.toString() + ":" + previewSize?.width
params.width = ConstraintLayout.LayoutParams.MATCH_CONSTRAINT
params.matchConstraintDefaultWidth = ConstraintLayout.LayoutParams.MATCH_CONSTRAINT_PERCENT
params.matchConstraintPercentWidth = 0.8f
mCameraPreviewLayout.layoutParams = params
}

private fun createFaceAnalyzer() {
FaceAnalyzerCreateOptions().use { createOptions ->
createOptions.setFaceAnalyzerMode(FaceAnalyzerMode.TRACK_FACES_ACROSS_IMAGE_STREAM)

mFaceAnalyzer = FaceAnalyzerBuilder()
.serviceOptions(mServiceOptions)
.source(mVisionSource)
.createOptions(createOptions)
.build().get()
}

mFaceAnalyzer?.apply {
this.analyzed.addEventListener(analyzedListener)
this.analyzing.addEventListener(analyzingListener)
this.stopped.addEventListener(stoppedListener)
}
}
...
}
Я попробовал несколько способов «распечатать» вид поверхности, поскольку у меня не было прямого доступа к объекту камеры, но ни один из них не сработал:

Код: Выделить всё

private fun usePixelCopy(view: SurfaceView, callback: (String) -> Unit) {
val bmp = Bitmap.createBitmap(view.width, view.width, Bitmap.Config.ARGB_8888)

PixelCopy.request(view, bmp, {
callback(bitmapToBase64(bmp))
}, Handler(Looper.getMainLooper()))
}
Источник: ссылка

Подробнее здесь: https://stackoverflow.com/questions/786 ... ter-verify
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»