# faceCheck **Repository Path**: ym521/face-check ## Basic Information - **Project Name**: faceCheck - **Description**: 基于openCV 实现的人脸检测 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-06-10 - **Last Updated**: 2025-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # faceCheck #### 介绍 基于openCV 实现的人脸检测 #### 示例 ```kotlin FaceCheck.install(applicationContext) .logEnabled() //开启日志 .memoryEnabled(true) //开启检测记忆 推荐开启 可以减低性能占有 .visualizeEnabled(true) //开启 轮廓绘制图输出 .faceCheckListener( object : FaceCheckCallback { /** * @param angle 识别到人脸时 图片的旋转角度 * @param bitmap 识别到人脸后的轮廓图 */ override fun onCheckResult(success: Boolean, angle: Int, bitmap: Bitmap?) { Log.w(TAG, "人脸检测:$success angle:$angle ") bitmap?.let { viewBind.ivPerView.setImageBitmap(it) } } }) /** * 检测图像帧 请求函数 * 适合其他采集方式 兼容性好 */ FaceCheck.faceCheck(Bitmap) /** * 检测图像帧 请求函数 * 适合直接使用CameraX的采集图像帧 */ FaceCheck.faceCheck(ImageProxy) /*** * 以下是基于CameraX 的快捷使用示例 */ private fun openCamera() { val cameraProviderFuture = ProcessCameraProvider.getInstance(this) cameraProviderFuture.addListener({ val cameraProvider: ProcessCameraProvider = cameraProviderFuture.get() // 预览用例 val preview = Preview .Builder() .build() preview.setSurfaceProvider(viewBind.pvOpenCV.surfaceProvider) // 可以根据需要设置目标分辨率和格式,以优化性能 val imageAnalysis = ImageAnalysis.Builder() .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST) //建议 保持最新一帧 .setOutputImageFormat(ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888) ////建议使用RGBA .build() val imageAnalyzer = SimpleImageAnalyzer.build() imageAnalysis.setAnalyzer(Executors.newSingleThreadExecutor(), imageAnalyzer) // 绑定到生命周期 val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA try { cameraProvider.unbindAll() cameraProvider.bindToLifecycle( this as LifecycleOwner, cameraSelector, preview, imageAnalysis ) } catch (exc: Exception) { Log.e(TAG, "Use case binding failed", exc) } }, ContextCompat.getMainExecutor(this)) } ``` ```xml dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { mavenCentral() maven { url 'https://jitpack.io' } } } ``` [![](https://jitpack.io/v/com.gitee.ym521/face-check.svg)](https://jitpack.io/#com.gitee.ym521/face-check) ```xml dependencies { implementation 'com.gitee.ym521:face-check:Tag' } ```