提高代码复用

This commit is contained in:
2024-07-23 16:59:36 +08:00
parent 221075bd67
commit d2ea9ec521
5 changed files with 81 additions and 49 deletions

View File

@@ -141,6 +141,30 @@ def handle_image_for_mask(split_result):
return expand_img, split_result["x_offset"], split_result["y_offset"]
def mask_photo(img_url, name, id_card_num, color=(255, 255, 255)):
# 是否涂抹了
is_masked = False
# 打开图片
image = image_util.read(img_url)
split_results = image_util.split(image)
for split_result in split_results:
to_mask_img, x_offset, y_offset = handle_image_for_mask(split_result)
results = get_mask_layout(to_mask_img, name, id_card_num)
if results:
is_masked = True
for result in results:
result = (
result[0] + x_offset,
result[1] + y_offset,
result[2] + x_offset,
result[3] + y_offset,
)
cv2.rectangle(image, (int(result[0]), int(result[1])), (int(result[2]), int(result[3])), color, -1, 0)
return is_masked, image
def photo_mask(pk_phhd, name, id_card_num):
session = MysqlSession()
phrecs = session.query(ZxPhrec.cfjaddress).filter(and_(
@@ -152,27 +176,8 @@ def photo_mask(pk_phhd, name, id_card_num):
img_url = ufile.get_private_url(phrec.cfjaddress)
if not img_url:
continue
# 是否有涂抹
is_masked = False
# 打开图片
image = image_util.read(img_url)
split_results = image_util.split(image)
for split_result in split_results:
to_mask_img, x_offset, y_offset = handle_image_for_mask(split_result)
results = get_mask_layout(to_mask_img, name, id_card_num)
if results:
is_masked = True
for result in results:
result = (
result[0] + x_offset,
result[1] + y_offset,
result[2] + x_offset,
result[3] + y_offset,
)
cv2.rectangle(image, (int(result[0]), int(result[1])), (int(result[2]), int(result[3])),
(255, 255, 255), -1, 0)
is_masked, image = mask_photo(img_url, name, id_card_num)
# 如果涂抹了要备份以及更新
if is_masked: