4.12. Blend
图片拼接。可实现多张图片进行拼接。仅支持BM1688和CV186AH,SoC模式。
4.12.1. 构造函数Blend()
初始化Blend。
- 接口形式:
- Blend(int src_h, std::vector<std::vector<short>> ovlap_attr, std::vector<std::vector<short>> bd_attr, std::vector<std::vector<string>> wgt_phy_mem, bm_stitch_wgt_mode wgt_mode) 
参数说明:
- src_h: int 
输入图片的高度。输入图片的高度需一致。
- ovlap_attr: std::vector<std::vector<short>> 
输入图片重叠区域的左右边界。
- bd_attr: std::vector<std::vector<short>> 
输入图片的左右黑边属性。目前不支持该选项,设为空即可。
- wgt_phy_mem: std::vector<std::vector<string>> 
输入图片的权重文件。参考[获取图片的权重文件],获取图片权重文件。
- wgt_mode: bm_stitch_wgt_mode 
输入图片的拼接模式。目前支持以下两种拼接模式,通常选择BM_STITCH_WGT_YUV_SHARE。
- BM_STITCH_WGT_YUV_SHARE: YUV share alpha and beta(1 alpha + 1 beta) 
- BM_STITCH_WGT_UV_SHARE: UV share alpha and beta(2 alpha + 2 beta) 
4.12.2. process
判断源文件是否打开。
- 接口形式1:
- int process(std::vector<BMImage*> &input, BMImage &output) 
返回值说明
- ret: int 
返回图片是否拼接成功,0表示成功,其他表示失败。
参数说明1:
- input: std::vector<BMImage*> 
输入待拼接的BMImage。
- output: BMImage 
输出拼接后的BMImage。
- 接口形式2:
- BMImage process(std::vector<BMImage*> &input) 
返回值说明
- output: BMImage 
返回拼接后的BMImage。
参数说明2:
- input: std::vector<BMImage*> 
输入待拼接的BMImage。
- 示例代码:
- #include "cvwrapper.h" int main(){ Handle handle(0); Decoder decoder("./left.jpg", False, 0); BMImage image_left; decoder.read(handle, image_left); Decoder decoder("./right.jpg", False, 0); BMImage image_right; decoder.read(handle, image_left); Blend blend_tmp(2240, {{2112},{2239}}, {}, {{"data/wgt/c01_alpha_444p_m2__0_2240x128.bin","data/wgt/c01_beta_444p_m2__0_2240x128.bin"}}, BM_STITCH_WGT_YUV_SHARE); BMImage bmimg = blend_tmp.process({image_left, image_right}); sail::Bmcv bmcv(handle); int ret = bmcv.imwrite("result.jpg", img); }