46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
import cv2
|
|
|
|
from db import MysqlSession
|
|
from db.mysql import ZxIeOcrerror
|
|
from photo_mask.photo_mask import handle_image_for_mask, get_mask_layout
|
|
from ucloud import ucloud
|
|
from util import image_util
|
|
|
|
if __name__ == '__main__':
|
|
session = MysqlSession()
|
|
ocr_errors = (session.query(ZxIeOcrerror.pk_phrec, ZxIeOcrerror.cXm, ZxIeOcrerror.cSfzh, ZxIeOcrerror.cfjaddress)
|
|
.filter(ZxIeOcrerror.checktime.is_(None)).order_by(ZxIeOcrerror.pk_phrec.desc()).limit(50).all())
|
|
session.close()
|
|
|
|
for ocr_error in ocr_errors:
|
|
final_img_url = ucloud.get_private_url(ocr_error.cfjaddress, "drg100")
|
|
final_image = image_util.read(final_img_url)
|
|
cv2.imwrite(f"./mask_optimization_result/answer/{ocr_error.cfjaddress}.jpg", final_image)
|
|
img_url = ucloud.get_private_url(ocr_error.cfjaddress, "drg2015")
|
|
if not img_url:
|
|
# 没有自动涂抹的图片
|
|
img_url = ucloud.get_private_url(ocr_error.cfjaddress, "drg103")
|
|
name = ocr_error.cXm
|
|
id_card_num = ocr_error.cSfzh
|
|
|
|
image = image_util.read(img_url)
|
|
# image = image_util.rotate(image, 90)
|
|
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])),
|
|
(0, 0, 0), -1, 0)
|
|
cv2.imwrite(f"./mask_optimization_result/{ocr_error.cfjaddress}.jpg", image)
|