From 142d52f4a1e286386108df363075c926a104e829 Mon Sep 17 00:00:00 2001 From: MTing Date: Fri, 26 Sep 2025 17:39:49 +0800 Subject: [PATCH] fix camera over --- .../main/java/com/ouxuan/oxface/MainActivity.java | 2 +- .../com/ouxuan/oxface/OXFaceOnlineActivity.java | 27 ++++++++++++++++------ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/ouxuan/oxface/MainActivity.java b/app/src/main/java/com/ouxuan/oxface/MainActivity.java index dd4edfa..e3d489a 100644 --- a/app/src/main/java/com/ouxuan/oxface/MainActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/MainActivity.java @@ -1347,7 +1347,7 @@ public class MainActivity extends AppCompatActivity { @Override public void run() { Toast.makeText(MainActivity.this, - "摄像头配置已切换为" + (deviceType == 5 ? "第6批" : "非第6批") + "设备", + "摄像头配置更新" + deviceType, Toast.LENGTH_SHORT).show(); } }); diff --git a/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java b/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java index 988ba27..b90ccf8 100644 --- a/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java @@ -1305,13 +1305,14 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi } else if (frameCounter % 30 == 0 ) { Log.e(TAG, "每30帧清空一次画布: 11111:"); // 对于跳过处理的帧,每30帧清空一次画布,确保无人脸时画面干净 - // try { - // LivenessModel emptyModel = new LivenessModel(); - // emptyModel.setTrackFaceInfo(null); - // showFrame(emptyModel); - // } catch (Exception e) { - // LogManager.logError(TAG, "清空画布时发生异常", e); - // } + try { + LivenessModel emptyModel = new LivenessModel(); + emptyModel.setTrackFaceInfo(null); + showFrame(emptyModel); + layoutCompareStatus.setVisibility(View.GONE); + } catch (Exception e) { + LogManager.logError(TAG, "清空画布时发生异常", e); + } } }else{ // Log.e(TAG, "不满足条件: 0000000:"); @@ -1461,6 +1462,10 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi rectF.bottom = screenHeight - tempTop; Log.d(TAG, "第7批设备人脸框坐标已进行180度旋转适配"); } + if((rectF.right-rectF.left)-(mAutoCameraPreviewView.getPreviewWidth()/3)<0){ + Log.d(TAG, "人像过小,不绘制"); + continue; + } @@ -1924,11 +1929,19 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi return; } + if(livenessModel.getFaceInfo().centerY>500){ + layoutCompareStatus.setVisibility(View.VISIBLE); + textCompareStatus.setTextColor(Color.parseColor("#fec133")); + textCompareStatus.setText("请移动人脸置于屏幕中"); + return; + } + //通过检测 if (livenessModel != null) { layoutCompareStatus.setVisibility(View.VISIBLE); textCompareStatus.setTextColor(Color.parseColor("#009874")); textCompareStatus.setText("人脸订单检测中"); + Log.d(TAG, "人脸订单检测: "+livenessModel.getFaceInfo().score+" | "+livenessModel.getFaceInfo().bestImageScore+ " | "+livenessModel.getFaceInfo().centerX+" | "+livenessModel.getFaceInfo().centerY); checkResultOnline(livenessModel);//在线人脸检测 } else { currentLivenessModel = null;