Ios 将相机图像抖动到快速图像
我正在开发一个定制的颤振插件,我将颤振图像相机发送给swift,并使用颤振相机插件()创建一个UIImage。 为此,我使用以下方法发送摄像头图像字节:Ios 将相机图像抖动到快速图像,ios,swift,flutter,dart,ios-camera,Ios,Swift,Flutter,Dart,Ios Camera,我正在开发一个定制的颤振插件,我将颤振图像相机发送给swift,并使用颤振相机插件()创建一个UIImage。 为此,我使用以下方法发送摄像头图像字节: startImageStream((CameraImage img) { sendFrameBytes(bytesList: img.planes.map((plane) { return plane.bytes; }).toList(), )} 平面包含单个数组,其中包含图像的RGBA字节。 在swift代码
startImageStream((CameraImage img) {
sendFrameBytes(bytesList: img.planes.map((plane) {
return plane.bytes;
}).toList(),
)}
平面包含单个数组,其中包含图像的RGBA字节。
在swift代码中,我将RGBA字节作为NSArray,并创建如下UIImage:
func detectFromFrame1(args:NSDictionary, result:FlutterResult){
var rgbaPlan = args["bytesList"] as! NSArray
let rgbaTypedData = rgbaPlan[0] as! FlutterStandardTypedData
let rgbaUint8 = [UInt8](rgbaTypedData.data)
let data = NSData(bytes: rgbaUint8, length: rgbaUint8.count)
let uiimage = UIImage(data: data as Data)
print(uiimage)
}
问题是rgbaTypedData,rgbaUint8,数据不是空的,创建的uiimage总是为零,我不知道问题出在哪里。我也有同样的问题。我使用的一种解决方法是在flutter中将图像转换为jpg,然后获取字节并将其提供给iOS/本机代码。 缺点是,它速度慢,不能实时使用 更新: 代码示例(颤振和TFLite包) 包装: 和 代码:
\u cameraController.startImageStream((\u availableCameraImage)
{
imglib.Image img=imglib.Image.fromBytes(_availableCameraImage.planes[0]。宽度,_availableCameraImage.planes[0]。高度,_availableCameraImage.planes[0]。字节);
Uint8List imgByte=imglib.encodeJpg(img);
Tfliteswift.detectObjectOnBinary(二进制:_availableCameraImage.planes[0]。字节);
}
请添加一些代码,使此答案更有用。我更新了我的评论,并添加了代码示例和所用软件包的URL。