//使用libyuv将YUV数据转为RGB数据
var yuvStart = System.currentTimeMillis()
var y = ByteArray(1920*1080)
var u = ByteArray(1920*1080/4)
var v = ByteArray(1920*1080/4)
System.arraycopy(data,0,y,0,y.size)
System.arraycopy(data,y.size,u,0,u.size)
System.arraycopy(data,y.size+u.size,v,0,v.size)
yuvUtil?.let {
var yuvUtilImage = it.yuv2rgb(y,u,v,1920,1080)
Log.i(TAG,"yuvUtil time:"+(System.currentTimeMillis()-yuvStart))
}
//使用OpenCV将YUV数据转为RGB数据
var opencvStart = System.currentTimeMillis()
var yuvMat = Mat(1080 + 1080 / 2, 1920, CvType.CV_8UC1)
yuvMat.put(0,0,data)
var rgbMat = Mat(1080,1920,CvType.CV_8UC3)
Imgproc.cvtColor(yuvMat,rgbMat,Imgproc.COLOR_YUV2RGB_I420)
var openCvImage = ByteArray(1920*1080*3)
rgbMat.get(0,0,openCvImage)
Log.i(TAG,"opencv time:"+(System.currentTimeMillis()-opencvStart))
分别统计OpenCV和libyuv耗时