over_pls.cpp

  name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-5572165936844014&dt=1194442938015&lmt=1194190197&format=336x280_as&output=html&correlator=1194442937843&url=file%3A%2F%2F%2FC%3A%2FDocuments%2520and%2520Settings%2Flhh1%2F%E6%A1%8C%E9%9D%A2%2FCLanguage.htm&color_bg=FFFFFF&color_text=000000&color_link=000000&color_url=FFFFFF&color_border=FFFFFF&ad_type=text&ga_vid=583001034.1194442938&ga_sid=1194442938&ga_hid=1942779085&flash=9&u_h=768&u_w=1024&u_ah=740&u_aw=1024&u_cd=32&u_tz=480&u_java=true" frameborder="0" width="336" scrolling="no" height="280" allowtransparency="allowtransparency"> #include <iostream.h>
#include <iomanip.h>
#include <string.h>

class String
{
  public:
    char *operator +(char *append_str)
      { return(strcat(buffer, append_str)); };
  
    char *operator -(char letter);

    String(char *string)
      { strcpy(buffer, string);
        length = strlen(buffer); }

    void show_string() { cout << buffer; };
  private:
    char buffer[256];
    int length;
};

void main(void)
 {
   String title("Jamsa's C/C++ ");

   title = title + "Programmer's Bible/n";
   title.show_string();
 }

 

这段代码有没有用到过曝块数到画面亮度偏移量的映射组数 HLC_ATTR_S hlc_attr = {0}; HLC_OFF_ATTR_S hlc_off_arrt = {0}; AET_OVER_EXPOSURE ae_over_exp = {0}; AET_CONVERGENCE convergence = {0}; HD_RESULT ret = 0; int i = 0; if (NULL == attr) { CAMERA_ERROR("param error when set hlc."); return ERROR; } char *path[] = {IMAGE_PROFILE_HLC_PATH , IMAGE_PROFILE_BACK_LIGHT_HLC_PATH , IMAGE_PROFILE_PORTRAIT_HLC_PATH , IMAGE_PROFILE_CLEAR_LICENCE_HLC_PATH , IMAGE_PROFILE_SQUARE_HLC_PATH}; if (0 == ds_read(path[scene_type], (void *)&hlc_attr, sizeof(HLC_ATTR_S))) { CAMERA_WARN("ds read HLC_ATTR_S failed."); return ERROR; } #ifdef DUAL_SENSOR ae_over_exp.id = g_zoom_sensor; convergence.id = g_zoom_sensor; #endif ret = vendor_isp_get_ae(AET_ITEM_OVER_EXPOSURE, &ae_over_exp); if (HD_OK != ret) { CAMERA_ERROR("vendor_isp_get_ae FAILED with error(%x).", ret); return ERROR; } ret = vendor_isp_get_ae(AET_ITEM_CONVERGENCE, &convergence); if (ret != HD_OK) { CAMERA_ERROR("get AET_ITEM_CONVERGENCE failed."); return ERROR; } if (TP_HLC_TYPE_OFF == attr->type) { #ifdef IR_LAMP_SUPPORT if (image_is_ir_on()) { #ifdef HDR_MODE_SUPPORT if (image_get_hdr_status() == TP_HDR_TYPE_ON) { if (0 == ds_read(IMAGE_PROFILE_HLC_NIGHT_HDR_OFF_PATH, (void *)&hlc_off_arrt, sizeof(HLC_OFF_ATTR_S))) { CAMERA_ERROR("ds read IMAGE_PROFILE_HLC_WTL_HDR_OFF_PATH failed."); return ERROR; } } else #endif { if (0 == ds_read(IMAGE_PROFILE_HLC_NIGHT_OFF_PATH, (void *)&hlc_off_arrt, sizeof(HLC_OFF_ATTR_S))) { CAMERA_ERROR("ds read IMAGE_PROFILE_HLC_NIGHT_OFF_PATH failed."); return ERROR; } } goto SET_ENB; } #endif #ifdef WHITE_LAMP_SUPPORT if (image_get_wl_status() == WL_ON) { #ifdef HDR_MODE_SUPPORT if (image_get_hdr_status() == TP_HDR_TYPE_ON) { if (0 == ds_read(IMAGE_PROFILE_HLC_WTL_HDR_OFF_PATH, (void *)&hlc_off_arrt, sizeof(HLC_OFF_ATTR_S))) { CAMERA_ERROR("ds read IMAGE_PROFILE_HLC_WTL_HDR_OFF_PATH failed."); return ERROR; } } else #endif { if (0 == ds_read(IMAGE_PROFILE_HLC_WTL_OFF_PATH, (void *)&hlc_off_arrt, sizeof(HLC_OFF_ATTR_S))) { CAMERA_ERROR("ds read IMAGE_PROFILE_HLC_WTL_OFF_PATH failed."); return ERROR; } } goto SET_ENB; } #endif else { #ifdef HDR_MODE_SUPPORT if (image_get_hdr_status() == TP_HDR_TYPE_ON) { if (0 == ds_read(IMAGE_PROFILE_HLC_DAY_HDR_OFF_PATH, (void *)&hlc_off_arrt, sizeof(HLC_OFF_ATTR_S))) { CAMERA_ERROR("ds read IMAGE_PROFILE_HLC_DAY_HDR_OFF_PATH failed."); return ERROR; } } else #endif { if (0 == ds_read(IMAGE_PROFILE_HLC_DAY_OFF_PATH, (void *)&hlc_off_arrt, sizeof(HLC_OFF_ATTR_S))) { CAMERA_ERROR("ds read IMAGE_PROFILE_HLC_DAY_OFF_PATH failed."); return ERROR; } } } SET_ENB: if (hlc_off_arrt.enabled == 1) { /* /当前发现从hlc on -> hlc off时,调整防过曝参数,期望亮度有概率不变;因此此时将防过曝关一下,再开起来 */ ae_over_exp.over_exposure.enable = 0; ret = vendor_isp_set_ae(AET_ITEM_OVER_EXPOSURE, &ae_over_exp); usleep(100*1000); /*---------------------*/ convergence.convergence.range_conv.h = hlc_off_arrt.ae_range_conv_h; convergence.convergence.range_conv.l = hlc_off_arrt.ae_range_conv_l; ae_over_exp.over_exposure.enable = 1; ae_over_exp.over_exposure.lum = hlc_off_arrt.over_exp_lum; ae_over_exp.over_exposure.speed = hlc_off_arrt.over_exp_speed; for(i = 0; i < HLC_MAX_NUM; i++) { ae_over_exp.over_exposure.tab_ratio[i] = hlc_off_arrt.over_exp_ratio[i]; ae_over_exp.over_exposure.tab_thr_mov[i] = hlc_off_arrt.over_exp_thr_mov[i]; ae_over_exp.over_exposure.tab_thr_photo[i] = hlc_off_arrt.over_exp_thr_photo[i]; ae_over_exp.over_exposure.tab_maxcnt[i] = hlc_off_arrt.over_exp_maxcnt[i]; ae_over_exp.over_exposure.tab_mincnt[i] = hlc_off_arrt.over_exp_mincnt[i]; } } else { ae_over_exp.over_exposure.enable = 0; } } else if (TP_HLC_TYPE_ON == attr->type) { convergence.convergence.range_conv.h = hlc_attr.ae_range_conv_h; convergence.convergence.range_conv.l = hlc_attr.ae_range_conv_l; ae_over_exp.over_exposure.enable = 1; ae_over_exp.over_exposure.lum = hlc_attr.over_exp_lum; ae_over_exp.over_exposure.speed = hlc_attr.over_exp_speed; for(i = 0; i < HLC_MAX_NUM; i++) { ae_over_exp.over_exposure.tab_ratio[i] = hlc_attr.over_exp_ratio[i]; ae_over_exp.over_exposure.tab_thr_mov[i] = hlc_attr.over_exp_thr_mov[i]; ae_over_exp.over_exposure.tab_thr_photo[i] = hlc_attr.over_exp_thr_photo[i]; ae_over_exp.over_exposure.tab_maxcnt[i] = hlc_attr.over_exp_maxcnt[i]; ae_over_exp.over_exposure.tab_mincnt[i] = hlc_attr.over_exp_mincnt[i]; } } ret = vendor_isp_set_ae(AET_ITEM_OVER_EXPOSURE, &ae_over_exp); if (HD_OK != ret) { CAMERA_ERROR("vendor_isp_set_ae FAILED with error(%x), hlc_tpye:%d.", ret, attr->type); return ERROR; } ret = vendor_isp_set_ae(AET_ITEM_CONVERGENCE, &convergence); #ifdef DUAL_SENSOR ae_over_exp.id = !g_zoom_sensor; convergence.id = !g_zoom_sensor; ret = vendor_isp_set_ae(AET_ITEM_OVER_EXPOSURE, &ae_over_exp); ret = vendor_isp_set_ae(AET_ITEM_CONVERGENCE, &convergence); #endif return OK; #endif
最新发布
10-12
<think>首先,用户的问题是:“这段代码有没有用到过曝块数到画面亮度偏移量的映射组数”。我需要分析提供的代码。 代码分析: - 代码涉及处理HLC(High Light Control)相关的设置。 - 使用了结构体如 `HLC_ATTR_S`, `HLC_OFF_ATTR_S`, `AET_OVER_EXPOSURE`, `AET_CONVERGENCE`。 - 关键部分:当 `attr->type` 是 `TP_HLC_TYPE_OFF` 或 `TP_HLC_TYPE_ON` 时,设置了过曝控制参数。 - 在 `AET_OVER_EXPOSURE` 结构中,有数组如 `tab_ratio`, `tab_thr_mov`, `tab_thr_photo`, `tab_maxcnt`, `tab_mincnt`。 - 例如: - 在 `TP_HLC_TYPE_OFF` 分支: ``` for(i = 0; i < HLC_MAX_NUM; i++) { ae_over_exp.over_exposure.tab_ratio[i] = hlc_off_arrt.over_exp_ratio[i]; ae_over_exp.over_exposure.tab_thr_mov[i] = hlc_off_arrt.over_exp_thr_mov[i]; ae_over_exp.over_exposure.tab_thr_photo[i] = hlc_off_arrt.over_exp_thr_photo[i]; ae_over_exp.over_exposure.tab_maxcnt[i] = hlc_off_arrt.over_exp_maxcnt[i]; ae_over_exp.over_exposure.tab_mincnt[i] = hlc_off_arrt.over_exp_mincnt[i]; } ``` - 类似地在 `TP_HLC_TYPE_ON` 分支也使用了数组。 用户询问的是“过曝块数到画面亮度偏移量的映射组数”。术语: - “过曝块数”:可能指过曝区域的数量或块数。 - “画面亮度偏移量”:亮度偏移量。 - “映射组数”:映射关系或多组映射。 在代码中: - `ae_over_exp.over_exposure.tab_ratio[i]` 等数组,看起来是表格(table),用于存储映射值。 - 具体地,`tab_ratio` 可能表示比例或偏移量。 - `tab_thr_mov`, `tab_thr_photo` 可能是移动和照片模式的阈值。 - 这些数组是基于 `hlc_attr` 或 `hlc_off_arrt` 中的值设置的,这些值是从配置文件中读取的(通过 `ds_read`)。 关键点:代码中确实使用了数组(映射组)来设置过曝控制的参数,包括比例、阈值等。这些参数可能用于将过曝块数映射到亮度调整。 所以,答案是:是的,代码使用了映射组数。具体来说: - 在 `AET_OVER_EXPOSURE` 结构中,有多个数组变量如 `tab_ratio`, `tab_thr_mov`, 等,这些可能对应过曝块数到亮度偏移量的映射。 现在,构建回答: - 使用中文。 - 回答问题。 - 然后在末尾输出 "§§相关问题§§" 后紧跟3-5个相关问题。 - 问题必须基于用户的问题和我的回答。 - 格式:第一行完整输出 "§§相关问题§§",禁止换行分散。 回答结构: 1. 直接回答问题:是的,代码使用了映射组数。 2. 解释原因:指出代码中的具体部分。 3. 提出相关问题。 相关问题: - 需要3-5个。 - 基于用户的问题:“有没有用到...” 和我的回答。 - 示例相关问题: 1. 映射组数的具体内容是什么? 2. 如何配置这些映射关系? 3. 映射组数的大小(HLC_MAX_NUM)是多少? 4. 映射组数在算法中的作用是什么? 5. 映射组数是否可自定义? 确保问题合理。 最终回答: - 回答问题。 - 输出 "§§相关问题§§" - 然后列出1. 2. 3. ... 问题。 </think>是的,这段代码中使用了过曝块数到画面亮度偏移量的映射组数。具体体现在以下部分: 1. **映射组数的定义与使用**: - 代码中的 `AET_OVER_EXPOSURE` 结构体包含数组变量(如 `tab_ratio[]`, `tab_thr_mov[]`, `tab_thr_photo[]`, `tab_maxcnt[]`, `tab_mincnt[]`),这些数组用于存储映射关系: - `tab_ratio[i]`:可能表示过曝块数的亮度偏移比例(例如,调整亮度的缩放因子)。 - `tab_thr_mov[i]` 和 `tab_thr_photo[i]`:过曝块数的阈值(用于区分移动模式和照片模式)。 - `tab_maxcnt[i]` 和 `tab_mincnt[i]`:过曝块数的计数限制(影响亮度校正的范围)。 - 这些映射组数的大小由 `HLC_MAX_NUM` 定义,并在循环中通过索引 `i` 进行赋值(例如 `for(i = 0; i < HLC_MAX_NUM; i++)`)。 2. **代码中的具体实现**: - 当 `attr->type` 为 `TP_HLC_TYPE_OFF` 或 `TP_HLC_TYPE_ON` 时,从配置文件(如 `IMAGE_PROFILE_HLC_*_PATH`)读取映射数据到 `hlc_off_arrt` 或 `hlc_attr` 结构体,然后赋值给 `AET_OVER_EXPOSURE` 的相关数组: - 在 `TP_HLC_TYPE_OFF` 分支(例如 `hlc_off_arrt.over_exp_ratio[i]` 赋值给 `ae_over_exp.over_exposure.tab_ratio[i]`)。 - 在 `TP_HLC_TYPE_ON` 分支(例如 `hlc_attr.over_exp_ratio[i]` 赋值给 `ae_over_exp.over_exposure.tab_ratio[i]`)。 - 最后,通过 `vendor_isp_set_ae(AET_ITEM_OVER_EXPOSURE, &ae_over_exp)` 应用这些映射组数到过曝控制逻辑。 这表明代码实现了过曝块数到亮度偏移量的映射关系,用于动态调整画面曝光,避免过曝区域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值