Flutter小记4Android手动设置Camera焦点没效果的解决方案&&CameraImage转YUV或RGBA要注意!
Posted 李华明Himi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter小记4Android手动设置Camera焦点没效果的解决方案&&CameraImage转YUV或RGBA要注意!相关的知识,希望对你有一定的参考价值。
一. 在使用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
以上是关于Flutter小记4Android手动设置Camera焦点没效果的解决方案&&CameraImage转YUV或RGBA要注意!的主要内容,如果未能解决你的问题,请参考以下文章
Flutter小记9flutter 打包的apk在某些真机无法安装或打开
Flutter小记9flutter 打包的apk在某些真机无法安装或打开