docstr: 将slide的out进行拼接，raw_size保证恢复到原状
docstr_tok: ["\u5c06slide\u7684out\u8fdb\u884c\u62fc\u63a5\uff0craw_size\u4fdd\u8bc1\u6062\u590d\u5230\u539f\u72b6"]
code: def splicingList(self, save_path):
      """
      将slide的out进行拼接，raw_size保证恢复到原状
      """
      imgs = self.mask_grids
      raw_size = self.detimg.shape[:2]
      # h, w = None, None
      # for i in range(len(imgs)):
      #     for j in range(len(imgs[i])):
      #         im = imgs[i][j]
      #         if im is not None:
      #             h, w = im.shape[:2]
      #             break
      # if h is None and w is None:
      #     return False
      h, w = self.gridSize
      row = math.ceil(raw_size[0] / h)
      col = math.ceil(raw_size[1] / w)
      result_1 = np.zeros((h * row, w * col), dtype=np.uint8)
      result_2 = result_1.copy()
      # k = 0
      for i in range(row):
          for j in range(col):
              ih, iw = imgs[i][j].shape[:2]
              im = np.zeros(self.gridSize)
              im[:ih, :iw] = imgs[i][j]
              start_h = (
                  (i * h) if i == 0 else (i * (h - self.overlap[0]))
              )
              end_h = start_h + h
              start_w = (
                  (j * w) if j == 0 else (j * (w - self.overlap[1]))
              )
              end_w = start_w + w
              # 单区自己，重叠取或
              if (i + j) % 2 == 0:
                  result_1[start_h:end_h, start_w:end_w] = im
              else:
                  result_2[start_h:end_h, start_w:end_w] = im
  
      result = np.where(result_2 != 0, result_2, result_1)
      result = result[: raw_size[0], : raw_size[1]]
      Image.fromarray(result).save(save_path, "PNG")
      return result
  
file_path: PaddleSeg/EISeg/eiseg/plugin/n2grid/grid.py
imports: import math
  import numpy
  from PIL import Image
label_desc: Use image node_id 5 for calling the Grids obj's underlying member method code with example usage: obj.splicingList(save_path) and returns: result