您的位置:首页 > 新闻 > 资讯 > 美度手表网站_校园网站设计的毕业论文_网络营销的方法有哪些?_企业邮箱网页版

美度手表网站_校园网站设计的毕业论文_网络营销的方法有哪些?_企业邮箱网页版

2024/10/31 4:35:29 来源:https://blog.csdn.net/weixin_43812877/article/details/143359485  浏览:    关键词:美度手表网站_校园网站设计的毕业论文_网络营销的方法有哪些?_企业邮箱网页版
美度手表网站_校园网站设计的毕业论文_网络营销的方法有哪些?_企业邮箱网页版

一、说明

       锅盖是什么

       锅盖的类型有哪些

二、去锅盖处理流程

     去锅盖算法首先需要采集一份锅盖模板数据,该模板数据用户可以自定义保存,方便后面的开机重启直接导入使用。去锅盖处理包含两个历程:保存锅盖模板;去锅盖处理。

保存锅盖模板:
1 ) 打开采集锅盖模板开关。使用操作类型 ITA_POTCOVER_SET_CALMODEL
2 ) 对着均匀面采集数据用来计算锅盖模板。
3 ) 保 存 锅 盖 模 板 数 据 , 用 户 自 定 义 保 存 。 使 用 操 作 类 型
ITA_POTCOVER_GET_MODEL
去锅盖处理:
1 ) 重启或者开机时,首先导入事先保存的锅盖模板。使用操作类型ITA_POTCOVER_SET_MODEL。
2 ) 设置去锅盖算法类型。使用操作类型 ITA_POTCOVER_SET_ALGOTYPE
3 ) 打开去锅盖算法开关。使用操作类型 ITA_POTCOVER_SET
锅盖算法选择依据:
1 ) 如 果 锅 盖 任 何 情 况 下 都 有 且 严 重 程 序 差 不 多 , 就 选 择 第 一 种 ITA_POTCOVER_FIX;
2 ) 如果锅盖冷机没有,热机有,选择第二种 ITA_POTCOVER_VAR1
3 ) 如果锅盖打快门会消失,然后慢慢出现,就选择第三种 ITA_POTCOVER_VAR2。
三、代码
     3.1 ITA的去锅盖API及接口类型说明
/**
* @brief:	去锅盖操作。
* @param:	HANDLE_T instance			ITA实例。
* @param:	ITA_GUOGAI_OP_TYPE type		用户去锅盖的操作类型。
* @param:	void *param					参数值,传地址。类型参考ITA_POTCOVER_OP_TYPE的注释。
* @return:	返回值类型:ITA_RESULT。成功,返回ITA_OK;失败,返回值<0,参考ERROR.h。
**/
ITA_API ITA_RESULT ITA_PotCoverRestrain(HANDLE_T instance, ITA_POTCOVER_OP_TYPE type, void* para);typedef enum ITAPotCoverType
{ITA_POTCOVER_GET_MODEL,//获取锅盖模板数据。用户可以自己进行保存,方便后面使用。参数类型:ITA_POTCOVER_MODEL_DATAITA_POTCOVER_SET_MODEL,//设置锅盖模板数据。参数类型:ITA_POTCOVER_MODEL_DATAITA_POTCOVER_SET_CALMODEL,//设置计算锅盖模板开关,参数类型:ITA_SWITCH,默认值是ITA_DISABLE。ITA_POTCOVER_GET_CALMODEL,//获取计算锅盖模型开关,参数类型:ITA_SWITCHITA_POTCOVER_SET_ALGOTYPE,//设置锅盖算法类型,参数类型:ITA_POTCOVER_ALGO_TYPE,默认值是ITA_POTCOVER_FIX。ITA_POTCOVER_GET_ALGOTYPE,//获取锅盖算法类型,参数类型:ITA_POTCOVER_ALGO_TYPE。ITA_POTCOVER_SET,//设置锅盖算法开关,参数类型:ITA_SWITCH,默认值是ITA_DISABLE。ITA_POTCOVER_GET//获取锅盖算法开关,参数类型:ITA_SWITCH。
}ITA_POTCOVER_OP_TYPE;

3.2 isp框架中的实现逻辑和函数封装

GSDT_RET INFRA_PLAT_PotCover_Set(IN INT PipeNr)
{INFRA_VREG_S *pstVreg = ISP_INFRA_Get_VregInfo(PipeNr);HANDLE_T hInfra = pstVreg->stPlatInfo.hInfra;ITA_SWITCH para1 = ITA_ENABLE;int width = 256;int height = 192;int len = width * height;//锅盖模板数据对象short* modelData = (short*)malloc(len * sizeof(short));memset(modelData, 0, len * sizeof(short));ITAPotcoverModelData model_data;memset(&model_data, 0, sizeof(ITAPotcoverModelData));model_data.width = width;model_data.height = height;model_data.modelData = modelData;//使用标定数据FILE *fpRaw;fpRaw = fopen("/data/guogaiModel.raw", "rb");if (NULL == fpRaw){ISP_Err("open /data/guogaiModel.raw  faild.");}fread(model_data.modelData, sizeof(short), len, fpRaw);fclose(fpRaw);//1.打开采集锅盖模板开关ITA_PotCoverRestrain(hInfra, ITA_POTCOVER_SET_CALMODEL, &para1);ITA_PotCoverRestrain(hInfra, ITA_POTCOVER_GET_CALMODEL, &para1);//2.开机时,导入保存锅盖模板数据。ITA_PotCoverRestrain(hInfra, ITA_POTCOVER_SET_MODEL, &model_data);//3.设置去锅盖算法类型,这里默认使用算法int type = ITA_POTCOVER_VAR2;ITA_PotCoverRestrain(hInfra, ITA_POTCOVER_SET_ALGOTYPE, &type);//4.打开去锅盖算法开关ITA_PotCoverRestrain(hInfra, ITA_POTCOVER_SET, &para1);return GSDT_R_SUCCESS;
}

3.2 isp框架中的功能调用

GSDT_RET INFRA_PLAT_Init(IN INT PipeNr)
{
...
...
...// //显示debug信息ITA_SWITCH itaParam = ITA_ENABLE;ITA_Debugger(pstPlatInfo->hInfra, ITA_SET_DEBUGGING, &itaParam);// //log中显示算法耗时BOOL bParam = BOOL_TRUE;ITA_Debugger(pstPlatInfo->hInfra, ITA_SET_ALGORCOSTTIME, &bParam);// //neon加速ITA_Accelerate(pstPlatInfo->hInfra, ITA_ACCELERATE_NEON);format = ITA_RGBA8888;ret = ITA_ImageControl(pstPlatInfo->hInfra, ITA_SET_FORMAT, (void *)&format);// //伪彩功能Ret = INFRA_PLAT_ALG_FalseColor_Init();// //INFRA_PLAT_CfgUpdate(PipeNr);//  // 去锅盖Ret = INFRA_PLAT_PotCover_Set(PipeNr);INFRA_PLAT_DRV_TempAdcInit(PipeNr);return GSDT_R_SUCCESS;
}

3.3 main函数

int main(int argc, char *argv[])
{...stReg.stInfraReg.pfn_send_data = get_yuv;stReg.stInfraReg.pfn_send_hist = get_hist;ISP_Function_Start();ISP_Function_Register(&stReg);
...while(1){if (vs_mal_vii_pipe_frame_acquire(0, &src_frame, &frame_num, 1000) == VS_SUCCESS){// printf("%s %d rece frame id %d\n", __FUNCTION__, __LINE__, src_frame.frame.id);stFrame.id = src_frame.frame.id;stFrame.timestamp = src_frame.frame.pts;src_frame.frame.virt_addr[0] = (vs_uint64_t)vs_mal_sys_mmap(src_frame.frame.phys_addr[0], src_frame.frame.width * src_frame.frame.height * 2);stFrame.virFrameAddr[0] = (VOID *)src_frame.frame.virt_addr[0];// fwrite(stFrame.virFrameAddr[0], 256*192*2, 1, fpRaw);// fflush(fpRaw);ret = ISP_INFRA_ReceiveData(1, &stFrame);if (ret) printf("%s %d ret %d\n", __FUNCTION__, __LINE__, ret);vs_mal_sys_unmap(src_frame.frame.virt_addr[0], src_frame.frame.width * src_frame.frame.height * 2);stFrame.virFrameAddr[0] = NULL;vs_mal_vii_pipe_frame_release(0, &src_frame, frame_num);}else{usleep(1000*10);}}ISP_Function_Exit();
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com