5.13. sail.Blend
图片拼接。可实现多张图片进行拼接。仅支持BM1688和CV186AH,SoC模式。
5.13.1. __init__
初始化Blend。
- 接口形式:
- def __init__(self, src_h: int, ovlap_attr: list[list[int]], bd_attr: list[list[int]], wgt_phy_mem: list[list[string]], wgt_mode: sail.blend_wgt_mode)) 
参数说明:
- src_h: int 
输入图片的高度。输入图片的高度需一致。
- ovlap_attr: list[list[int]] 
输入图片重叠区域的左右边界。
- bd_attr: list[list[int]] 
输入图片的左右黑边属性。目前不支持该选项,设为空即可。
- wgt_phy_mem: list[list[string]] 
输入图片的权重文件。参考[获取图片的权重文件],获取图片权重文件。
- wgt_mode: sail.blend_wgt_mode 
输入图片的拼接模式。目前支持以下两种拼接模式,通常选择sail.blend_wgt_mode.BM_STITCH_WGT_YUV_SHARE。
- sail.blend_wgt_mode.BM_STITCH_WGT_YUV_SHARE: YUV share alpha and beta(1 alpha + 1 beta) 
- sail.blend_wgt_mode.BM_STITCH_WGT_UV_SHARE: UV share alpha and beta(2 alpha + 2 beta) 
5.13.2. process
进行图片拼接。
- 接口形式1:
- def process(input: list[BMImage], output: BMImage) -> int 
返回值说明
- ret: int 
返回图片是否拼接成功,0表示成功,其他表示失败。
参数说明1:
- input: list[BMImage] 
输入待拼接的BMImage。
- output: BMImage 
输出拼接后的BMImage。
- 接口形式2:
- def process(input: list[BMImage]) -> BMImage 
返回值说明
- output: BMImage 
返回拼接后的BMImage。
参数说明2:
- input: list[BMImage] 
输入待拼接的BMImage。
- 示例代码:
- import sophon.sail as sail if __name__ == '__main__': handle = sail.Handle(0) decoder = sail.Decoder("./left.jpg", False, 0) image_left = sail.BMImage() ret = decoder.read(handle, image_left) decoder = sail.Decoder("./right.jpg", False, 0) image_right = sail.BMImage() ret = decoder.read(handle, image_right) blend_obj = sail.Blend(2240, [[2112],[2239]], [], [["data/wgt/c01_alpha_444p_m2__0_2240x128.bin","data/wgt/c01_beta_444p_m2__0_2240x128.bin"]], sail.blend_wgt_mode.BM_STITCH_WGT_YUV_SHARE) img = blend_obj.process([image_left,image_right]) sail.Bmcv(handle).imwrite("result.jpg",img)