工具/软件:
您好:
我们正在为我自己的传感器调优 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 文件中添加了我的摄像机的配置(在函数和中)
appIssGetDCCSize2A
appIssGetDCCBuff2A
、运行 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"); }