This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VM:为什么捕获节点's 输出图片不正常?

Guru**** 2553260 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1558791/tda4vm-why-the-capture-node-s-output-picture-is-not-normal

器件型号:TDA4VM


工具/软件:

您好、

我正在使用 rewrite 应用程序使用捕获节点,相机是 ar0233,它似乎是可以的,但当我写捕获节点的输出图像,似乎捕获节点不能正常工作。 它输出的图片像下面的,我是否错过了捕获节点的一些配置?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更多信息:

    1.sensor 集:

    vx_status set_front_cam_defaults (SensorObj *frontCam)

    Vx_STATUS 状态= Vx_Success;
    strcpy (frontCam->sensor_name、“AR0233_MAX9295_UYVY")“);
    前摄像头->num_sensors_found = 0;
    前凸->SENSOR_FEATURES_ENABLED = 0;
    前凸->SENSOR_FEATURES_SUPPORTED = 0;
    前摄像头->SENSOR_DCC_ENABLED = 0;
    前摄像头->SENSOR_WDR_ENABLED = 0;
    frontCam->sensor_exp_control_enabled = 0;
    frontCam->SENSOR_GAIN_CONTROL_ENABLED = 0;
    前凸->ch_MASK = 16;
    前凸->ENABLE_LDC = 0;
    前摄像头->num_camers_enabled = 1;
    frontCam->uscase_option = APP_SENSOR_FEATURE_CFG_UC0;
    前视->is_interactive = 0;
    前凸->SENSOR_OUT_FORMAT = 1;

    状态= APP_QUERI_SENSOR (FIRTCam);

    返回状态;
    }

    2.

    摄像头启动正常。

    OUT 功能:

    VX_STATUS 状态;

    status = vxGetStatus ((vx_reference) img_arr);

    IF (STATUS == Vx_Success)

    文件*fp = fopen (file_name、“wb")“);
    vx_size arr_len;
    vx_int32 i、j;

    IF (FP = NULL)

    printf(“无法打开文件%s \n“、file_name);
    返回 (vx_failure);
    }

    vxQueryObjectArray (img_arr、vx_object_array_NUMITEMS、&arr_len、sizeof (vx_size));

    对于 (i = 0;i < arr_len;i++)

    vx_rectange_t RECT;
    vx_imagepatch_addressing_t image_addr;
    vx_map_id map_id;
    void *data_ptr;
    vx_uint32 img_width;
    vx_uint32 img_height;
    vx_df_image df;
    vx_image out_img;
    vx_uint32 num_bytes = 0;

    OUT_img =(vx_image) vxGetObjectArrayItem (img_arr、i);

    vxQueryImage (out_img、vx_image_width、&img_width、sizeof (vx_uint32));
    vxQueryImage (out_img、vx_image_height、&img_height、sizeof (vx_uint32));
    vxQueryImage (out_img、vx_image_format、&df、sizeof (vx_df_image));

    printf(“[capture-node] writeCaptureNodeOutput 图像格式%d、宽度%d、图像高度%d。\n“、df、img_width、img_height);
    IF (df == Vx_DF_IMAGE_UYVY)

    RECT.START_x = 0;
    RECT.START_y = 0;
    RECT.END_x = IMG_WIDTH;
    RECT.END_y = IMG_HEIGHT;
    状态= vxMapImagePatch (out_img、
    矩形 (&R)
    0、
    &MAP_ID、
    ℑ_addr、
    &DATA_PTR、
    Vx_READ_ONLY、
    vx_memory_type_host、
    Vx_NOGAP_X);

    /*复制 Luma */
    对于 (j = 0;j < img_height;j++)

    num_bytes += fwrite (data_ptr、1、img_width、fp);
    data_ptr += image_addr.strip_y;
    }

    if (num_bytes!=(img_width * img_height))
    printf(“Luma bytes writed =%d、expected =%d\n“、num_bytes、img_width * img_height);

    vxUnmapImagePatch (out_img、map_id);
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Cheng:

    最有可能的是, 它不捕获任何东西,这只是虚拟框架。  

    能否请您确认一下

    - CSIRX 配置了正确的通道数量和通道顺序

    - CSIRX 配置了正确的数据类型和虚拟通道 ID

    - CSIRX 配置了正确的通道速度,与 解串器的输出相匹配

    - 解串器的输出仅在 PHY 配置后才启用、而不在 PHY 之前启用。  

    此致、

    Brijesh