Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Latest commit

 

History

History
History
55 lines (44 loc) · 1.72 KB

File metadata and controls

55 lines (44 loc) · 1.72 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
43
44
45
46
47
48
49
50
51
52
53
54
55
import shutil
import urllib.request
import zipfile
from pathlib import Path
import enlighten
import pycolmap
from pycolmap import logging
def run():
output_path = Path("example/")
image_path = output_path / "Fountain/images"
database_path = output_path / "database.db"
sfm_path = output_path / "sfm"
output_path.mkdir(exist_ok=True)
logging.set_log_destination(logging.INFO, output_path / "INFO.log.") # + time
data_url = "https://cvg-data.inf.ethz.ch/local-feature-evaluation-schoenberger2017/Strecha-Fountain.zip"
if not image_path.exists():
logging.info("Downloading the data.")
zip_path = output_path / "data.zip"
urllib.request.urlretrieve(data_url, zip_path)
with zipfile.ZipFile(zip_path, "r") as fid:
fid.extractall(output_path)
logging.info(f"Data extracted to {output_path}.")
if database_path.exists():
database_path.unlink()
pycolmap.extract_features(database_path, image_path)
pycolmap.match_exhaustive(database_path)
num_images = pycolmap.Database(database_path).num_images
if sfm_path.exists():
shutil.rmtree(sfm_path)
sfm_path.mkdir(exist_ok=True)
with enlighten.Manager() as manager:
with manager.counter(total=num_images, desc="Images registered:") as pbar:
pbar.update(0, force=True)
recs = pycolmap.incremental_mapping(
database_path,
image_path,
sfm_path,
initial_image_pair_callback=lambda: pbar.update(2),
next_image_callback=lambda: pbar.update(1),
)
for idx, rec in recs.items():
logging.info(f"#{idx} {rec.summary()}")
if __name__ == "__main__":
run()
Morty Proxy This is a proxified and sanitized view of the page, visit original site.