code: def draw_crop_rec_res(self, output_dir, img_crop_list, rec_res):
      os.makedirs(output_dir, exist_ok=True)
      bbox_num = len(img_crop_list)
      for bno in range(bbox_num):
          cv2.imwrite(
              os.path.join(
                  output_dir,
                  f"mg_crop_{bno+self.crop_image_res_index}.jpg",
              ),
              img_crop_list[bno],
          )
          logger.debug(f"{bno}, {rec_res[bno]}")
      self.crop_image_res_index += bbox_num
  
imports: import os
  import sys
  import subprocess
  import cv2
  import copy
  import numpy
  import json
  import time
  import logging
  from PIL import Image
  import tools.infer.utility
  import tools.infer.predict_rec
  import tools.infer.predict_det
  import tools.infer.predict_cls
  from ppocr.utils.utility import get_image_file_list, check_and_read
  from ppocr.utils.logging import get_logger
  from tools.infer.utility import draw_ocr_box_txt, get_rotate_crop_image, get_minarea_rect_crop
label_desc: Use image node_id 2 for calling the TextSystem obj's underlying member method code with example usage: obj.draw_crop_rec_res(output_dir, img_crop_list, rec_res) without return types