Spaces:
Runtime error
Runtime error
| import cv2 | |
| import yaml | |
| import numpy as np | |
| import os | |
| import sys | |
| ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) | |
| sys.path.insert(0, ROOT_DIR) | |
| from components import load_component | |
| from utils import evaluation_utils | |
| import argparse | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument( | |
| "--config_path", | |
| type=str, | |
| default="configs/sgm_config.yaml", | |
| help="number of processes.", | |
| ) | |
| parser.add_argument( | |
| "--img1_path", type=str, default="demo_1.jpg", help="number of processes." | |
| ) | |
| parser.add_argument( | |
| "--img2_path", type=str, default="demo_2.jpg", help="number of processes." | |
| ) | |
| args = parser.parse_args() | |
| if __name__ == "__main__": | |
| with open(args.config_path, "r") as f: | |
| demo_config = yaml.load(f) | |
| extractor = load_component( | |
| "extractor", demo_config["extractor"]["name"], demo_config["extractor"] | |
| ) | |
| img1, img2 = cv2.imread(args.img1_path), cv2.imread(args.img2_path) | |
| size1, size2 = np.flip(np.asarray(img1.shape[:2])), np.flip( | |
| np.asarray(img2.shape[:2]) | |
| ) | |
| kpt1, desc1 = extractor.run(args.img1_path) | |
| kpt2, desc2 = extractor.run(args.img2_path) | |
| matcher = load_component( | |
| "matcher", demo_config["matcher"]["name"], demo_config["matcher"] | |
| ) | |
| test_data = { | |
| "x1": kpt1, | |
| "x2": kpt2, | |
| "desc1": desc1, | |
| "desc2": desc2, | |
| "size1": size1, | |
| "size2": size2, | |
| } | |
| corr1, corr2 = matcher.run(test_data) | |
| # draw points | |
| dis_points_1 = evaluation_utils.draw_points(img1, kpt1) | |
| dis_points_2 = evaluation_utils.draw_points(img2, kpt2) | |
| # visualize match | |
| display = evaluation_utils.draw_match(dis_points_1, dis_points_2, corr1, corr2) | |
| cv2.imwrite("match.png", display) | |