工具/软件:
在`ti-processor-sdk-rtos-j721e-evm-10_01_00_04/vision_apps/basic_demos/app_DOF/main.c`中、我发现`vxGaussianPyramidNode`的输出被分配给`obj->pyumidObj.PYR_ref`、如下代码片段所示。
status = app_create_graph_pyramid(obj->graph, &obj->pyramidObj, obj->pyramidObj.input_img[0], obj->pyramidObj.pyr_ref );
`obj->pyramidObj.PYR_ref`是`pyramidObj->PYR_delay`延迟对象的索引-1、如下所示 ` ti-processor-sdk-rtos-j721e-evm-10_01_00_04/vision_apps/basic_demos/app_dos/app_dof/DOF_bily_module.c `的代码片段。
pyramidObj->pyr_delay = vxCreateDelay(context, (vx_reference)pyr_exemplar, 2); APP_ASSERT_VALID_REF(pyramidObj->pyr_delay); pyramidObj->pyr_ref = (vx_pyramid)vxGetReferenceFromDelay(pyramidObj->pyr_delay, -1); APP_ASSERT_VALID_REF(pyramidObj->pyr_ref); vxSetReferenceName((vx_reference)pyramidObj->pyr_ref, "PyramidReference"); pyramidObj->pyr_cur = (vx_pyramid)vxGetReferenceFromDelay(pyramidObj->pyr_delay, 0); APP_ASSERT_VALID_REF(pyramidObj->pyr_cur); vxSetReferenceName((vx_reference)pyramidObj->pyr_cur, "PyramidCurrent");
如果我没有误解、则索引-1是 延迟对象的前一帧、而延迟对象的索引0是当前帧(即`pyramidObj->pyr_curr`)。
`、`将`obj->pyramidObj.pYR_cur`和`obj->pyramidObj.pYR_ref`分别分配给`tivxDmpacDofNode `的参数` input_current`和 `input_reference`、如下所示 ti-processor-sdk-rtos-evm-10_domain/dos/j721e_apps/main_demos/himension_00/apps 的代码片段。
status = app_create_graph_dofproc(obj->graph, &obj->dofprocObj, obj->dofprocObj.dof_config, obj->pyramidObj.pyr_cur, obj->pyramidObj.pyr_ref, obj->dofprocObj.flow_vector_field_in, obj->dofprocObj.flow_vector_field_out );
我的问题是: `` vxGaussianPyramidNode `的最新输出分配给` obj->pyumidObj.pYR_ref `(即前一帧)而不是` obj->pyumidObj.pYR_cur (即当前帧)? 这是一个错误吗? 但生成的输出图像似乎正确。