工具/软件:
您好:
我们正在为我自己的传感器调优 ISP (SDK 09_01_00_22)。
使用 APP_SINGLE_cam 软件、我们可以捕捉原始图像和 YUV 图像、但白平衡存在问题。 因此、采取了以下步骤:
-
我按照 DCC 中的 AWB 插件指南对摄像头执行白平衡校准并生成 mycamera_awb_alg_ti3_tuning.xml 文件。 并将其放入 ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/imaging/sensor_drv/mycamera/dcc_xmls 中 src

-
使用 generate_dcc.sh 来生成 dcc_2a_mycamera.h 文件。
-
在 app_iss_common.c 文件中添加了我的摄像机的配置(在函数和中)
appIssGetDCCSize2AappIssGetDCCBuff2A、运行 make imaging_crub & make vision_apps_scrub、然后执行 imaging&make vision_apps
但白平衡仍然不正确。
我打印出 DCCSize2A,发现 大小与 DCC_2a_imx390 相同,而不是我的预期值 (25587 )。“传感器名称: mycamera,大小: 22321,SENSOR_WDR_MODE:0。 “
dcc_buff_size_driver = appIssGetDCCSize2A(obj->sensor_name, sensor_wdr_mode);
printf("sensor name : %s,size : %d,sensor_wdr_mode:%u\n",obj->sensor_name,dcc_buff_size_driver,sensor_wdr_mode);
即使在我强行修改大小和缓冲区以匹配我自己的设置后,白平衡仍然不正确。
//dcc_buff_size_driver = appIssGetDCCSize2A(obj->sensor_name, sensor_wdr_mode);
dcc_buff_size_driver = DCC_2A_mycamera_DCC_CFG_NUM_ELEM;
//status = appIssGetDCCBuff2A(obj->sensor_name, sensor_wdr_mode, dcc_2a_buf, dcc_buff_size_driver);
memcpy(dcc_2a_buf, dcc_2a_mycamera_linear, dcc_buff_size_driver);
我在以下三种条件下保存了原始图像和 YUV 图像:
1.dcc_buff_size_driver =–1
2.dcc_buff_size_driver = appIssGetDCCSize2A (obj->sensor_name、SENSOR_WDR_MODE);
status = appIssGetDCCBuff2A (obj->sensor_name、SENSOR_WDR_MODE、dcc_2a_buf、dcc_buff_size_driver);
3.dcc_buff_size_driver = dcc_2A_mycamer_DCC_CFG_NUM_Elem;
memcpy (dcc_2a_buf、dcc_2a_mycamera_linear、dcc_buff_size_driver);
e2e.ti.com/.../RAW_5F00_YUV_5F00_IMG.zip
顺便说一下、在函数 appDccUpdatefromFS 中、case 块中是否缺少 break 语句?
int32_t appDccUpdatefromFS(char* sensor_name, uint8_t wdr_mode,
vx_node node_viss, uint32_t viss_node_index,
vx_node node_aewb, uint32_t aewb_node_index,
vx_node node_ldc, uint32_t ldc_node_index,
vx_context context)
{
char dcc_dir_path[MAX_FOLDER_NAME_LEN];
char op_mode[8];
int dcc_num_bytes;
int dcc_bytes_read;
uint8_t * dcc_buf;
switch(wdr_mode)
{
case 0:
/*Linear mode*/
snprintf(op_mode, 8, "%s", "linear");
default:
/*WDR mode*/
snprintf(op_mode, 8, "%s", "wdr");
}