修复了识别窗口追踪功能

This commit is contained in:
zxj
2025-08-08 10:25:54 +08:00
parent 4a29b3adc9
commit 4086f9c0b7
2 changed files with 28 additions and 17 deletions
@@ -468,11 +468,11 @@ class SecondaryScreenPresentation(
} }
/** /**
* 调整View的宽高,使预览显示正常且采集框固定为380x380 * 调整View的宽高,使预览显示正常且采集框固定为
* *
* @param rgbPreview RGB预览View * @param rgbPreview RGB预览View
* @param previewView 显示预览数据的view * @param previewView 显示预览数据的view
* @param faceRectView 画框的view (380x380) * @param faceRectView 画框的view
* @param previewSize 预览大小 * @param previewSize 预览大小
* @param displayOrientation 相机旋转角度 * @param displayOrientation 相机旋转角度
* @param scale 缩放比例 * @param scale 缩放比例
@@ -536,7 +536,7 @@ class SecondaryScreenPresentation(
displayOrientation: Int, displayOrientation: Int,
isMirror: Boolean isMirror: Boolean
) { ) {
Timber.d("Rgb onCameraOpened: cameraId = $cameraId, displayOrientation = $displayOrientation") Timber.d("initRgbCamera Rgb onCameraOpened: cameraId = $cameraId, displayOrientation = $displayOrientation")
activity.runOnUiThread({ activity.runOnUiThread({
val previewSizeRgb = camera.getParameters().getPreviewSize() val previewSizeRgb = camera.getParameters().getPreviewSize()
val layoutParams = adjustPreviewViewSize( val layoutParams = adjustPreviewViewSize(
@@ -546,16 +546,28 @@ class SecondaryScreenPresentation(
) )
Timber.d("initRgbCamera previewSizeRgb = ${previewSizeRgb.width}-${previewSizeRgb.height}") Timber.d("initRgbCamera previewSizeRgb = ${previewSizeRgb.width}-${previewSizeRgb.height}")
Timber.d("initRgbCamera layoutParams = ${layoutParams.width}-${layoutParams.height}") Timber.d("initRgbCamera layoutParams = ${layoutParams.width}-${layoutParams.height}")
Timber.d(
"initRgbCamera isMirror = ${isMirror}, isDrawRgbRectHorizontalMirror = ${
ConfigUtil.isDrawRgbRectHorizontalMirror(
context
)
}, isDrawRgbRectVerticalMirror = ${
ConfigUtil.isDrawRgbRectVerticalMirror(
context
)
}"
)
// 调整识别窗口位置
rgbFaceRectTransformer = FaceRectTransformer( rgbFaceRectTransformer = FaceRectTransformer(
previewSizeRgb.width, previewSizeRgb.width,
previewSizeRgb.height, previewSizeRgb.height,
layoutParams.width, layoutParams.width,
layoutParams.height, layoutParams.height,
displayOrientation, 90,
cameraId, cameraId,
isMirror, isMirror,
ConfigUtil.isDrawRgbRectHorizontalMirror(context), true,
ConfigUtil.isDrawRgbRectVerticalMirror(context) true
) )
recognizeViewModel.onRgbCameraOpened(camera) recognizeViewModel.onRgbCameraOpened(camera)
@@ -578,20 +590,20 @@ class SecondaryScreenPresentation(
} }
override fun onCameraClosed() { override fun onCameraClosed() {
Timber.i("onCameraClosed: ") Timber.i("initRgbCamera onCameraClosed: ")
} }
override fun onCameraError(e: java.lang.Exception) { override fun onCameraError(e: java.lang.Exception) {
Timber.i("onCameraError: %s", e.message) Timber.i("initRgbCamera onCameraError: %s", e.message)
e.printStackTrace() e.printStackTrace()
} }
override fun onCameraConfigurationChanged(cameraID: Int, displayOrientation: Int) { override fun onCameraConfigurationChanged(cameraID: Int, displayOrientation: Int) {
Timber.i("onCameraConfigurationChanged: threadName = ${Thread.currentThread().name}") Timber.i("initRgbCamera onCameraConfigurationChanged: threadName = ${Thread.currentThread().name}")
if (rgbFaceRectTransformer != null) { if (rgbFaceRectTransformer != null) {
rgbFaceRectTransformer!!.cameraDisplayOrientation = displayOrientation rgbFaceRectTransformer!!.cameraDisplayOrientation = displayOrientation
} }
Timber.i("onCameraConfigurationChanged: $cameraID $displayOrientation") Timber.i("initRgbCamera onCameraConfigurationChanged: $cameraID $displayOrientation")
} }
} }
@@ -630,7 +642,7 @@ class SecondaryScreenPresentation(
displayOrientation: Int, displayOrientation: Int,
isMirror: Boolean isMirror: Boolean
) { ) {
Timber.d("IR onCameraOpened: cameraId = $cameraId, displayOrientation = $displayOrientation") Timber.d("initIrCamera IR onCameraOpened: cameraId = $cameraId, displayOrientation = $displayOrientation")
val previewSizeIr = camera.getParameters().getPreviewSize() val previewSizeIr = camera.getParameters().getPreviewSize()
val layoutParams = adjustPreviewViewSize( val layoutParams = adjustPreviewViewSize(
binding.dualCameraTexturePreviewRgb, binding.dualCameraTexturePreviewRgb,
@@ -655,11 +667,11 @@ class SecondaryScreenPresentation(
} }
override fun onCameraClosed() { override fun onCameraClosed() {
Timber.i("onCameraClosed: ") Timber.i("initIrCamera onCameraClosed: ")
} }
override fun onCameraError(e: java.lang.Exception) { override fun onCameraError(e: java.lang.Exception) {
Timber.i("onCameraError: ${e.message}") Timber.i("initIrCamera onCameraError: ${e.message}")
e.printStackTrace() e.printStackTrace()
} }
@@ -670,7 +682,7 @@ class SecondaryScreenPresentation(
if (irFaceRectTransformer != null) { if (irFaceRectTransformer != null) {
irFaceRectTransformer!!.cameraDisplayOrientation = displayOrientation irFaceRectTransformer!!.cameraDisplayOrientation = displayOrientation
} }
Timber.i("onCameraConfigurationChanged: cameraID = $cameraID, displayOrientation = $displayOrientation") Timber.i("initIrCamera onCameraConfigurationChanged: cameraID = $cameraID, displayOrientation = $displayOrientation")
} }
} }
@@ -12,7 +12,7 @@
<!--人脸识别--> <!--人脸识别-->
<FrameLayout <FrameLayout
android:id="@+id/fl_face" android:id="@+id/fl_face"
android:layout_width="376dp" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:paddingTop="1dp" android:paddingTop="1dp"
@@ -21,8 +21,7 @@
<TextureView <TextureView
android:id="@+id/dual_camera_texture_preview_rgb" android:id="@+id/dual_camera_texture_preview_rgb"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_gravity="center"
android:visibility="visible" /> android:visibility="visible" />
<com.sw.plate.utils.arcface.FaceRectView <com.sw.plate.utils.arcface.FaceRectView