code: def postprocess(self, outputs, visualization):
      all_points = []
  
      # 结果后处理
      for im_id, img in enumerate(self.datas):
          points = []
          for idx in range(self.num_points):
              probMap = outputs[im_id, idx, :, :]
              img_height, img_width, _ = img.shape
              probMap = cv2.resize(probMap, (img_width, img_height))
              minVal, prob, minLoc, point = cv2.minMaxLoc(probMap)
  
              if prob > self.threshold:
                  points.append([int(point[0]), int(point[1])])
              else:
                  points.append(None)
  
          all_points.append(points)
  
          # 结果可视化
          if visualization:
              # 检查输出目录
              check_dir(self.output_dir)
              # 结果可视化
              self.vis_pose(img, points, im_id)
  
      # 返回后处理结果
      return all_points
  
file_path: PaddleHub/modules/image/keypoint_detection/hand_pose_localization/processor.py
imports: import os
  import cv2
  import time
  import base64
  import numpy
label_desc: Use image node_id 4 for calling the Processor obj's underlying member method code with example usage: obj.postprocess(outputs, visualization) and returns: all_points