android p preview_Android CameraPreview快速适配 (人脸识别、相机视频流)

本文介绍了一个用于快速适配Android相机的Camera1封装库,能够处理物理旋转、镜像和角度旋转等问题。内容包括库的特色、基本使用方法、预览回调帧设置、特定相机适配以及人脸位置映射。提供了简单的代码示例,适用于多个人脸识别SDK集成的项目。
摘要由CSDN通过智能技术生成

一、开发背景

由于在项目中需要集成多个人脸识别SDK,然后这些SDK有些有自己的Camera API(但又不是特别独立),有的SDK甚至都没有像样的Camera API。所以我就自己写了一个通用的,用来抓取视频流的Camera1的代码封装。

二、特色

快速适配各类相机(物理旋转、镜像、各种角度旋转等)

控件大小自动适配

人脸位置映射

使用缓冲机制获取视频流

代码简单(一个Class)、引入方面,CameraPreview的完整代码在第五点

1.png

2.png

三、基本使用,炒鸡简单

1、一个 Layout文件

android:layout_width="match_parent"

android:layout_height="match_parent"

>

android:id="@+id/camera_preview"

android:layout_width="300dp"

android:layout_height="500dp"

/>

2、恢复和停止 (默认是前置摄像头 适配设备oneplus 6)

package com.lfork.cameraimagecollect.camera1

import android.os.Bundle

import android.support.v7.app.AppCompatActivity

import com.lfork.cameraimagecollect.R

import kotlinx.android.synthetic.main.activity_camera_texture.*

class CameraTextureActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_camera_texture)

}

override fun onResume() {

super.onResume()

camera_preview.resumeCamera()

}

override fun onStop() {

super.onStop()

camera_preview.releaseCamera()

}

}

3、相关的权限处理就需要自己完成了

四、进阶使用

1、设置预览回调帧 确保在resumeCamea()之前调用即可

val previewFrameCallBack = Camera.PreviewCallback { data, _ ->

Log.d("CameraTextureActivity", "preview camera byte data $data")

}

camera_preview.previewCallBack = previewFrameCallBack

2、针对特定的相机进行适配

val params = CameraPreview.Params()

params.cameraId = 0

params.isHorizontalMirrored = false

params.previewRotation = 90f

params.previewWidth = 640

params.previewHeight = 480

camera_preview.setupCameraParams(params)

3、人脸位置映射

/**

* 原始图片(传到SDK里面进行处理的图片)中的坐标到预览View坐标中的映射。应用场景举例:预览页面显示人脸框。

*

* @param rectF 原始图中的坐标

*/

fun mapFromOriginalRect(rectF: RectF, rawImgWeight: Int, rawImgHeight: Int)

五、引入:一个class,拷贝到项目中即可

package com.lfork.cameraimagecollect.camera

import android.content.Context

import android.graphics.Matrix

import android.graphics.RectF

import android.graphics.SurfaceTexture

import android.hardware.Camera

import android.os.Handler

import android.os.Looper

import android.support.annotation.AttrRes

import android.util.AttributeSet

import android.view.TextureView

import android.wid

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值