基于TDA4不同camera分辨率同时出图问题解决方案

前言

基于TI官方的app_multi_cam demo 接入两个或多个相机会出现被选中的相机正常工作,其他与之不一样的相机均异常显示,画面模糊、重叠等情况


提示:以下是本篇文章正文内容,下面案例可供参考

一、原因是什么?

由于TI官方的app_multi_cam demo考虑的是多个相同分辨率的相机,若此时接入不同的相机去运行则会出现其中一个相机正常,其他分辨率不一样的相机均异常画面

二、方案

1.建立新图像节点

建立新的捕获节点,有几个不同的相机就建立几个捕获节点;建立新的LDC(防止畸变)节点,只使用LDC具有的数据类型转换(YUV->NV12),故配置ldcObj->Config和ldcObj->region_config即可,其他均NULL;若越过LDC则Mosaic拼图时会出现数据类型不一致,因Mosaic处理的为NV12数据类型,LDC节点与捕获节点一样有几个不同分辨率的相机就建立几个;LDC输出数据到Mosaic数据输入端,有几个不同的相机,Mosaic输入Index就为几,Mosaic一路输入可以有多个通道每个通道对应一个视频流,假设四个不同分辨率相机则Mosaic输入Index为4个,每个输入路径中只有一个通道,故通道均为0;
mosaic输出赋值到imag类型的变量给到display节点的输入端,自此多个捕获节点进过多个LDC节点进入一个mosaic节点进入一个display节点
``
基于TDA4不同camera分辨率同时出图问题解决方案_第1张图片
1.建立捕获节点CaptureObj CaptureObj2; 建立LDC节点LDCObj ldcObj2;
2.节点初始化拆成两个节点的,原先是一个节点处理多个同样的相机参数
status = app_init_capture(obj->context, &obj->captureObj, &obj->sensorObj, “capture_obj”,APP_BUFFER_Q_DEPTH);
status = app_init_capture2(obj->context, &CaptureObj2, &obj->sensorObj, APP_BUFFER_Q_DEPTH);

    status = app_init_ldc(obj->context, &obj->ldcObj, &obj->sensorObj, "ldc_obj");
    status = app_init_ldc(obj->context, &ldcObj2, &obj->sensorObj, "ldc_obj2");

3.建立两个捕获节点,和建立两个LDC节点
基于TDA4不同camera分辨率同时出图问题解决方案_第2张图片
在这里插入图片描述
基于TDA4不同camera分辨率同时出图问题解决方案_第3张图片
修改拼图函数的输入参数
基于TDA4不同camera分辨率同时出图问题解决方案_第4张图片


你可能感兴趣的:(计算机视觉,目标检测,图像处理)