0
点赞
收藏
分享

微信扫一扫

【Flutter小记4】Android手动设置Camera焦点没效果的解决方案&&CameraImage转YUV或RGBA要注意!

Xin_So 2022-11-23 阅读 125


       一. 在使用Flutter 的官方插件 Camera,进行手动设置焦点时,Android总是觉得没有任何效果,后来看了不少issues,看到一个兄弟提起:

Android手动设置焦点,那么要先对其焦点模式设置为locked

Android camera 要 setFocusPoint:
1. setFocusMode(FocusMode.locked)
2. setFocusPoint(Offset(x,x))

      二. 关于 将CameraImage 转换为RGBA(iOS) 或 YUV(Android) 转换最好不要使用 dart 的imageLib.Image 来转换,效率很低!最明显的就是iOS上 release 效率是  debug 的 1/6 ~ 1/10 ... 简直巨慢!

     因此如果我们要将相机实时流 CameraImage 转为yuv 或 rgba 后给opencv 或 tflite 来做后续动作,那么建议使用 ffi / method channel将数据传给 c++ 层 opencv 的 cvtColor 来转换,效率高很多!当然如果对实时流的效率要求没那么高,imageLib.Image 也是完全足以的

    iOS 和 Android 双平台的转换流程:

ios -> CameraImage  RGBA-> ffi/channel ->opencv ->  COLOR_BGRA2RGB
android -> CameraImage YUV ffi/channel ->->opencv -> COLOR_YUV2RGB

举报

相关推荐

0 条评论