sbt-idp/cope2n-ai-fi/modules/ocr_engine/externals/sdsv_dewarp/test.py
2023-11-30 18:22:16 +07:00

47 lines
1.1 KiB
Python

from sdsv_dewarp.api import AlignImage
import cv2
import glob
import os
import tqdm
import time
import argparse
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--input")
parser.add_argument("--out")
parser.add_argument("--device", type=str, default="cuda:1")
args = parser.parse_args()
model = AlignImage(device=args.device)
img_dir = args.input
out_dir = args.out
if not os.path.exists(out_dir):
os.makedirs(out_dir)
img_paths = glob.glob(img_dir + "/*")
times = []
for img_path in tqdm.tqdm(img_paths):
t1 = time.time()
img = cv2.imread(img_path)
if img is None:
print(img_path)
continue
aligned_img, is_blank, angle_align = model(img)
times.append(time.time() - t1)
if not is_blank:
cv2.imwrite(os.path.join(out_dir, os.path.basename(img_path)), aligned_img)
else:
cv2.imwrite(os.path.join(out_dir, os.path.basename(img_path)), img)
times = times[1:]
print("Avg time: ", sum(times) / len(times))