目前我对这个demo的理解是,左右两个buffer分别用DRP和openCV处理,然后输出到屏幕的左右两边,同时输出二者占用时间(显然opencv耗时更长一些),不知道我的理解是否有误。
然后,我发现在sample_main函数中,提供了按键按下的“接口”,以及在其中的while循环中“do nothing”,想问一下,如果想要在目前二值化图像的基础上做进一步的处理,比如模板匹配、特征匹配,是不是在这个while函数里面调用drp或者opencv的库就可以了呢?(如果不是的话又要怎么操作?)然后调用这些库函数,传入参数是要用那些数组或者说哪个地方存储的数据是二值化之后的图像数据呢?
你第一个方框里面的位置可以处理底板SW3按键的输入,方便和外部交互(参数变更,demo模式变更等)
例如:
/* Get key */
key_status = key_status << 1 | PORTJ.PIDR.BIT.PIDR1;
if ( ( key_status & KEY_CHECK_BIT) == KEY_JUST_ON )
{
p_param->benchmark_item++;
if (p_param->benchmark_item == DBI_INVALID)
p_param->benchmark_item = DBI_BINARIZATION;
}
第二个方框不需要做任何处理,需要等待MIPI有新的一帧输入,如果你需要扩展功能,将你的代码添加到下面红色函数里面
PerformSetStartTime(IPP_BAYER_2_GRAY_TOTAL); r_drp_bayer2grayscale(p_param->input_bufadr, p_param->work_bufadr, R_BCD_CAMERA_WIDTH, R_BCD_CAMERA_HEIGHT); PerformSetEndTime(IPP_BAYER_2_GRAY_TOTAL);
benchmark(p_param); //添加你的功能
/* Clear the current capture state and enable the detection of the next capture completion */ R_BCD_CameraClearCaptureStatus();
/* update display data on the LCD screen */ R_BCD_LcdClearGraphicsBuffer();