Toybrick

求Android camera2 image数据帧使用rga转换方法

xyt2008

注册会员

积分
119
发表于 2023-4-24 14:16:29    查看: 1534|回复: 1 | [复制链接]    打印 | 显示全部楼层
Android camera2 下使用public void onImageAvailable(ImageReader reader)函数得到每一帧图像数据
image = reader.acquireLatestImage();需要对image数据进行yuv420转rgb,进行算法分析;当前在rk3568上使用opencv cpu转换1280*720分辨率的图像特别慢,不能满足实时性需求。使用libRGA进行格式转换。始终不能转换出正确的图像来。使用rknpu2中的android demo里面libRGA转换函数是基于camera1的,能够正常转换。将如下的转换方法进行处理camera2的image数据始终不能成功。求个libRGA转换camera2 image数据到RGB的方法。@Override
public void onPreviewFrame(byte[] data, Camera camera) {
    mCamera0.addCallbackBuffer(data);
    ImageBufferQueue.ImageBuffer imageBuffer = mImageBufferQueue.getFreeBuffer();

    if (imageBuffer != null) {

        long oldTime = System.currentTimeMillis();
        RGA.colorConvert(data, RK_FORMAT_YCrCb_420_SP,
                imageBuffer.mImage, RK_FORMAT_RGBA_8888,
                CAMERA_PREVIEW_WIDTH, CAMERA_PREVIEW_HEIGHT, this.flip);
        long currentTime = System.currentTimeMillis();
        //float fps = 1000.f / (currentTime - oldTime);
        //Log.d(TAG, "fps = "+String.valueOf(fps));
        float times = currentTime - oldTime;
        Log.d(TAG, "RGA.colorConvert times = "+String.valueOf(times)+"ms");

        mImageBufferQueue.postBuffer(imageBuffer);
    }
}
回复

使用道具 举报

xyt2008

注册会员

积分
119
 楼主| 发表于 2023-4-24 14:18:13 | 显示全部楼层
libRGA写的rgb和bgr之间互转是能正常的。就是这个camera2出来的yuv420数据格式很怪,始终不能正确转换出来。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表