5.16. sail.Blend
图片拼接。可实现多张图片进行拼接。仅支持BM1688和CV186AH。
5.16.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.16.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)