我们使用 TDA2xx 板开发颜色差异算法。
我们已将数据格式设置为 system_DF_BGR24_888、输出间距乘以3。
为此、我们使用了 VXLIB API。 以下是我们为实现所需结果而采取的步骤列表:-
1) 1)为了使用单摄像头用例测试算法、我们使用"VXLIB_tableLookup _i8u_o8u" API 在传入视频帧上应用了 LUT。
2) 2)随后使用"VXLIB_absDiff _i8u_i8u_o8u" API 在原始视频帧和 LUT 应用帧之间取绝对差。
3) 3)之后、我们使用"VXLIB_channelExtract_1of3_i8u_o8u" API 将视频帧分为 B、G 和 R 分量。
4) 4)最后、我们使用"VXLIB_add_i8u_i8u_o8u" API 添加了提取的 B、G 和 R 组件。
为了获得两个图像帧之间的绝对差值、我们使用了 VXLIB_absDiff i8u_i8u_o8u API 并设置了以下参数:
src_addr.DIM_x =宽度* 3;
SRC_addr.DIM_y =高度;
SRC_addr.STRING_y =间距[0];
src_addr.data_type = VXLIB_UINT8;
dst_addr.dim_x =宽度* 3;
dst_addr.dim_y =高度;
dst_addr.stade_y = inPit[0];
dst_addr.data_type = VXLIB_UINT8;
根据颜色差算法要求、提取每个通道、生成的图像是所有通道的加法。
为了提取通道、我们使用了 VXLIB_channelExtract_1of3_i8u_o8u API 并设置以下参数:
srcAddr.dim_x =宽度*3;
srcAddr.dim_y =高度;
srcAddr.STRANT_y =间距[0];
srcAddr.data_type = VXLIB_UINT24;
dstAddr.DIM_x =宽度* 3;
dstAddr.dim_y =高度;
dstAddr.stade_y = inPit[0];
dstAddr.data_type = VXLIB_UINT8;
为了添加通道、我们使用了 VXLIB_add_i8u_i8u_o8u API 并设置以下参数、
srcAddr.DIM_x =宽度* 3;
srcAddr.dim_y =高度;
srcAddr.STRANT_y =间距[0];
srcAddr.data_type = VXLIB_UINT8;
dstAddr.DIM_x =宽度* 3;
dstAddr.dim_y =高度;
dstAddr.STRANT_y = outPit[0];
dstAddr.data_type = VXLIB_UINT8;
查询:我们在绝对差值后得到完整的图像帧、但在添加所有三个通道后、我们没有得到完整的输出图像。
1) 1)请告知我们是否为所使用的 API 正确设置了参数。
2) 2)此外、如果我们在开发颜色差异算法时执行了错误的步骤、请更正我们。
我已附上结果供您参考。
如果您需要我们方面的更多信息、请告知我们。
谢谢、
Parth Modi
