4d3ca7e0 by 周伟奇

slice part 2

1 parent 149b0899
...@@ -1542,9 +1542,12 @@ BC_FIELD_ORDER_2 = (('BankName', '发卡行名称'), ...@@ -1542,9 +1542,12 @@ BC_FIELD_ORDER_2 = (('BankName', '发卡行名称'),
1542 1542
1543 IMG_PATH_KEY = 'uniq_img_path_key' 1543 IMG_PATH_KEY = 'uniq_img_path_key'
1544 IMG_PATH_KEY_2 = 'uniq_img_path_key_2' 1544 IMG_PATH_KEY_2 = 'uniq_img_path_key_2'
1545 SECTION_IMG_PATH_KEY = 'uniq_section_img_path_key'
1546 ALL_POSITION_KEY = 'uniq_all_position_key'
1545 POSITION_KEY = 'uniq_position_key' 1547 POSITION_KEY = 'uniq_position_key'
1546 SECTION_KEY = 'uniq_section_key'
1547 ANGLE_KEY = 'uniq_angle_key' 1548 ANGLE_KEY = 'uniq_angle_key'
1549 FIELD_POSITION_KEY = 'position'
1550 FIELD_QUAD_KEY = 'quad'
1548 1551
1549 INFO_SOURCE = ['POS', 'CMS'] 1552 INFO_SOURCE = ['POS', 'CMS']
1550 1553
......
...@@ -373,7 +373,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -373,7 +373,7 @@ class Command(BaseCommand, LoggerMixin):
373 license_summary.setdefault(classify, []).extend(license_data) 373 license_summary.setdefault(classify, []).extend(license_data)
374 res_list.append((pno, ino, part_idx, consts.RES_SUCCESS)) 374 res_list.append((pno, ino, part_idx, consts.RES_SUCCESS))
375 375
376 def license2_process(self, ocr_res_2, license_summary, pid, classify, res_list, pno, ino, part_idx, img_path, do_dda, dda_id_bc_mapping, section_img_path=None): 376 def license2_process(self, ocr_res_2, license_summary, pid, classify, res_list, pno, ino, part_idx, img_path, do_dda, dda_id_bc_mapping, file_data):
377 if ocr_res_2.get('ErrorCode') in consts.SUCCESS_CODE_SET: 377 if ocr_res_2.get('ErrorCode') in consts.SUCCESS_CODE_SET:
378 res_list.append((pno, ino, part_idx, consts.RES_SUCCESS)) 378 res_list.append((pno, ino, part_idx, consts.RES_SUCCESS))
379 if pid == consts.BC_PID: 379 if pid == consts.BC_PID:
...@@ -389,19 +389,51 @@ class Command(BaseCommand, LoggerMixin): ...@@ -389,19 +389,51 @@ class Command(BaseCommand, LoggerMixin):
389 dda_id_bc_mapping.setdefault(consts.BC_FIELD, []).append((bc_no, img_path)) 389 dda_id_bc_mapping.setdefault(consts.BC_FIELD, []).append((bc_no, img_path))
390 else: 390 else:
391 # 营业执照等 391 # 营业执照等
392 for result_dict in ocr_res_2.get('ResultList', []): 392 pre, suf = os.path.splitext(img_path)
393 position = result_dict.get('position', {}) 393 src_section_img_path = img_path if file_data is None else '{0}_{1}{2}'.format(pre, part_idx, suf)
394 angle = result_dict.get('angle', 0) 394
395 is_save = False
396 for res_idx, result_dict in enumerate(ocr_res_2.get('ResultList', [])):
397 image_data = result_dict.get('image_data', '')
398 if len(image_data) > 0:
399 position = {}
400 angle = 0
401 section_img_path = '{0}_{1}_{2}{3}'.format(pre, part_idx, res_idx, suf)
402 try:
403 with open(section_img_path, "wb") as fh:
404 fh.write(base64.b64decode(image_data.encode()))
405 except Exception as e:
406 self.online_log.warn(
407 '{0} [section img save failed] [img_path={1}]'
408 ' [part_idx={2}] [res_idx={3}]'.format(self.log_base, img_path, part_idx, res_idx))
409 else:
410 is_save = True
411 section_img_path = src_section_img_path
412 position = result_dict.get('position', {})
413 angle = result_dict.get('angle', 0)
395 res_dict = {} 414 res_dict = {}
396 position_dict = {} 415 position_dict = {}
397 for field_dict in result_dict.get('FieldList', []): 416 for field_dict in result_dict.get('FieldList', []):
398 res_dict[field_dict.get('chn_key', '')] = field_dict.get('value', '') 417 res_dict[field_dict.get('chn_key', '')] = field_dict.get('value', '')
399 position_dict[field_dict.get('chn_key', '')] = field_dict.get('position', []) 418 position_dict[field_dict.get('chn_key', '')] = {
400 position_dict[consts.SECTION_KEY] = position 419 consts.FIELD_POSITION_KEY: field_dict.get('position', {}),
420 consts.FIELD_QUAD_KEY: field_dict.get('quad', []),
421 }
422 position_dict[consts.POSITION_KEY] = position
401 position_dict[consts.ANGLE_KEY] = angle 423 position_dict[consts.ANGLE_KEY] = angle
402 res_dict[consts.IMG_PATH_KEY] = section_img_path if isinstance(section_img_path, str) else img_path 424 res_dict[consts.IMG_PATH_KEY] = img_path
403 res_dict[consts.POSITION_KEY] = position_dict 425 res_dict[consts.SECTION_IMG_PATH_KEY] = section_img_path
426 res_dict[consts.ALL_POSITION_KEY] = position_dict
404 license_summary.setdefault(classify, []).append(res_dict) 427 license_summary.setdefault(classify, []).append(res_dict)
428
429 if is_save and file_data is not None:
430 try:
431 with open(src_section_img_path, "wb") as fh:
432 fh.write(base64.b64decode(file_data.encode()))
433 except Exception as e:
434 self.online_log.warn(
435 '{0} [section img save failed] [img_path={1}]'
436 ' [part_idx={2}]'.format(self.log_base, img_path, part_idx))
405 else: 437 else:
406 res_list.append((pno, ino, part_idx, consts.RES_FAILED_2)) 438 res_list.append((pno, ino, part_idx, consts.RES_FAILED_2))
407 439
...@@ -980,22 +1012,9 @@ class Command(BaseCommand, LoggerMixin): ...@@ -980,22 +1012,9 @@ class Command(BaseCommand, LoggerMixin):
980 name = '无' 1012 name = '无'
981 ocr_2_res['Name'] = name 1013 ocr_2_res['Name'] = name
982 1014
983 section_img_path = None
984 try:
985 if ocr_2_res.get('ErrorCode') in consts.SUCCESS_CODE_SET:
986 pre, suf = os.path.splitext(img_path)
987 section_img_path = '{0}_{1}{2}'.format(pre, part_idx, suf)
988 with open(section_img_path, "wb") as fh:
989 fh.write(base64.b64decode(file_data.encode()))
990 except Exception as e:
991 self.online_log.warn(
992 '{0} [section img save failed] [img_path={1}]'
993 ' [part_idx={2}]'.format(self.log_base, img_path, part_idx))
994
995 self.license2_process(ocr_2_res, license_summary, pid, classify, 1015 self.license2_process(ocr_2_res, license_summary, pid, classify,
996 res_list, pno, ino, part_idx, img_path, 1016 res_list, pno, ino, part_idx, img_path,
997 do_dda, dda_id_bc_mapping, 1017 do_dda, dda_id_bc_mapping, file_data=ocr_data.get('section_img'))
998 section_img_path=section_img_path)
999 break 1018 break
1000 else: 1019 else:
1001 res_list.append((pno, ino, part_idx, consts.RES_FAILED_2)) 1020 res_list.append((pno, ino, part_idx, consts.RES_FAILED_2))
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!