Skip to main content

Documentation Index

Fetch the complete documentation index at: https://imcui.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

API Reference

Complete programmatic access to Image Matching WebUI functionality.

Quick Start

from imcui.api import ImageMatchingAPI
from imcui.ui import get_matcher_zoo

# Get available matchers
matchers = get_matcher_zoo()

# Initialize API
api = ImageMatchingAPI(conf=matchers["superpoint-lightglue"])

# Match two images
result = api(image0, image1)

Core API

ImageMatchingAPI

Main API class for image matching operations.
from imcui.api import ImageMatchingAPI

api = ImageMatchingAPI(conf=matcher_config, device="cuda")
result = api(image0, image1)
Parameters:
ParameterTypeRequiredDefaultDescription
confdictYes-Matcher configuration
devicestrNo”cuda”Device: “cuda”, “cpu”, “mps”
Returns: Dictionary containing:
  • keypoints0, keypoints1: Detected keypoints
  • matches: Pairwise matches
  • scores: Confidence scores
  • H (optional): Homography matrix (if RANSAC enabled)

Matcher Utilities

Get Available Matchers

from imcui.ui import get_matcher_zoo

matchers = get_matcher_zoo()
print(f"Available: {list(matchers.keys())}")

Get Model Names

from imcui.ui import get_available_model_names

models = get_available_model_names()

Matching Functions

Run Matching

from imcui.ui import run_matching

result = run_matching(
    image0, image1,
    matcher_name="superpoint-lightglue",
    device="cuda"
)

Run RANSAC

from imcui.ui import run_ransac

filtered_matches = run_ransac(
    kp0, kp1, matches,
    ransac_method="CV2_USAC_MAGSAC",
    threshold=8.0
)

Filter Matches

from imcui.ui import filter_matches

clean_matches = filter_matches(matches, scores, threshold=0.2)

Geometry Functions

Compute Geometry

from imcui.ui import compute_geometry

H, mask = compute_geometry(
    kp0, kp1, matches,
    geometry_type="homography",
    ransac_method="CV2_USAC_MAGSAC"
)
Geometry Types:
  • homography - Planar scenes
  • fundamental - Calibrated cameras
  • essential - Stereo vision

Visualization Functions

Display Keypoints

from imcui.ui import display_keypoints

result = display_keypoints(
    image, keypoints,
    color=(0, 255, 0)
)

Display Matches

from imcui.ui import display_matches

result = display_matches(
    image0, image1,
    kp0, kp1, matches,
    color=(0, 255, 0)
)

Plot Images

from imcui.ui import plot_images

plot_images([img0, img1], titles=["Image 0", "Image 1"])

Utility Functions

Get Configuration Path

from imcui import get_default_config_path

config_path = get_default_config_path()

Get Data Path

from imcui import get_example_data_path

data_path = get_example_data_path()

Get Version

from imcui import get_version

version = get_version()

Model Caching

ARC Size-Aware Cache

from imcui.ui import ARCSizeAwareModelCache

cache = ARCSizeAwareModelCache()
model = cache.get_model("superpoint-lightglue")

LRU Cache

from imcui.ui import LRUModelCache

cache = LRUModelCache(max_size=10)
model = cache.get_model("loftr")

Complete Example

from imcui.api import ImageMatchingAPI
from imcui.ui import (
    DEVICE,
    get_matcher_zoo,
    display_matches
)
import cv2

# Load images
img0 = cv2.imread("image0.jpg")
img1 = cv2.imread("image1.jpg")

# Get available matchers
matchers = get_matcher_zoo()

# Initialize API
api = ImageMatchingAPI(
    conf=matchers["superpoint-lightglue"],
    device=DEVICE
)

# Run matching
result = api(img0, img1)

# Visualize results
result_image = display_matches(
    img0, img1,
    result["keypoints0"],
    result["keypoints1"],
    result["matches"]
)

cv2.imwrite("matches.jpg", result_image)
API Updates: All matching algorithms are maintained in the vismatch repository. Check their documentation for the latest algorithms and features.