File size: 1,302 Bytes
4d4dd90
 
40c4807
4d4dd90
 
 
 
40c4807
4d4dd90
 
 
40c4807
4d4dd90
2507d2f
40c4807
4d4dd90
 
40c4807
 
4d4dd90
 
 
 
 
40c4807
 
 
 
 
 
 
 
4d4dd90
40c4807
4d4dd90
2507d2f
4d4dd90
 
 
 
40c4807
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import cv2
import warnings
import numpy as np
from pathlib import Path
from hloc import logger
from common.utils import (
    get_matcher_zoo,
    load_config,
    device,
    ROOT,
)
from common.api import ImageMatchingAPI


def test_api(config: dict = None):
    img_path1 = ROOT / "datasets/sacre_coeur/mapping/02928139_3448003521.jpg"
    img_path2 = ROOT / "datasets/sacre_coeur/mapping/17295357_9106075285.jpg"
    image0 = cv2.imread(str(img_path1))[:, :, ::-1]
    image1 = cv2.imread(str(img_path2))[:, :, ::-1]

    matcher_zoo_restored = get_matcher_zoo(config["matcher_zoo"])
    for k, v in matcher_zoo_restored.items():
        if image0 is None or image1 is None:
            logger.error("Error: No images found! Please upload two images.")
        enable = config["matcher_zoo"][k].get("enable", True)
        if enable:
            logger.info(f"Testing {k} ...")
            api = ImageMatchingAPI(conf=v, device=device)
            api(image0, image1)
            log_path = ROOT / "experiments1"
            log_path.mkdir(exist_ok=True, parents=True)
            api.visualize(log_path=log_path)
        else:
            logger.info(f"Skipping {k} ...")


if __name__ == "__main__":
    import argparse

    config = load_config(ROOT / "common/config.yaml")
    test_api(config)