47 lines
1.1 KiB
Python
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))
|