ToolAssay

Locate a pattern image inside a larger image even when it is scaled, rotated or

Locate a pattern image inside a larger image even when it is scaled, rotated or viewed at an angle: ORB or SIFT feature matching plus cv2.findHomography with RANSAC. Returns whether it was found, the 3x3 homography (pattern pixels to image pixels), the four projected corners, the bounding box, and the inlier count as confidence. Use it to find a UI element, logo or object in a screenshot or photo.

Answeringour last check, 2026-10-03
1 of 1checks answered this week
971 msmedian answer time
$0.004listed price per call
$0.004price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://visionflow-match.saastemly.com/v1/homography

CategoryImage and media
Provider hostvisionflow-match.saastemly.com
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days0 from 0 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-03 valid payment request 402$0.004 971 ms

Example input (from the provider)

{
  "body": {
    "detector": "sift",
    "image": "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",
    "template": "iVBORw0KGgoAAAANSUhEUgAAAEAAAAAwCAAAAACEICPDAAADAklEQVRIx61UT0gUURz+Znfazdyx0Ex3U1smVqJCKwn6c5FCCaKDoYdOEh7WywQiQh6UisKgS7QgLLSXQrpIdPTPISIiiAqlSHJptbINRTR1E1m3fc0b58/OOjM7rv6YefPmzft9v+/73pvHPIUUftq0ARGYxSjQIHWiysggbRzyyzS2HFJ+twLgzzV9VOlEM/Obo46MOZYKoCjQ5YsS/PYI0Jg0yBc98PvptUHAUsEhCSGqz5dM1MpHctMI6PPhsGl5A0oN+OsA9BYGg1kIJvlmDILShVAoJA+MqW1Alx9grXjfS8Px0Iklgmb3shvJmaqkC31YZV3N6hzmtfEmoPXDV4uc6yvVB98TYKWmdOGL1/2r5zmZiVfe0Cw1YxCWRNytQM9ExWlg+WMxPlV7gZ6TX9NcfcaKqACRtsgmhLT4vPhdENt2rzORLge45JrPM/02DiEa2JjH6vdAr4ZQNgt0uP+tdYj9xflHvg/fLg0nnGyyyEO/hjAk5NoHZcAel/f8C7E7XOsDQ5AACDzK95AeYPEVxqfoBCkIkTrsrr/BqVmkhi4DvoUBYJX0CsLhswKtLugkpH78SU3UyekgjAjBUBHk5e4SvCk8BZS74pUkfq4gLUbKKSiFZYDV/jXHZOJnnSaAofcC8OQWi5Er4kvfkegYCvbh+hLeDTS1btoHgzWB+zeZXsKoHGjM0vXYGOkTV6WppL/Lo3dK9oAk57l5bh2qCYxqJOS/ohtoOVp2OytfYfB5eGnveqqg5TGRUhUeeg6GITM43l7ceeFMZ5VSmqhUwhoHKwCgHvuPZThIMkhYIigAhSfAezXtDKPmh61PGhsnkrUIO0eaghDLF0BGiBki2DtUJQQ+bwmailjeANtaBYVCmDeiwMI+wtYYcAZjvH0AjqOXQcS2ZyJvlwFnqmIThSwT78jPB7TpyncZ5yw1xHIs45x0t/4eaazNayOp1Rtt2ugwyRcPl3GTmrHt/Qt8FglTAFMKvJWJJv4/079eM2dwYCd/51pzG3f0QPkPRu/dDgU3nB4AAAAASUVORK5CYII="
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "properties": {
            "detector": {
              "description": "Keypoint detector and descriptor: orb (default, fast, binary descriptors, Hamming distance) or sift (slower, better with scale changes, L2 distance)",
              "enum": [
                "orb",
                "sift"
              ],
              "type": "string"
            },
            "image": {
              "description": "Base64 of a PNG, JPEG, BMP or WebP file (a data: URI also works). At most 4 million pixels and about 2 MB. Alpha is dropped.",
              "type": "string"
            },
            "max_features": {
              "description": "Most keypoints kept per image, 100-5000 (default 2000)",
              "type": "integer"
            },
            "min_inliers": {
              "description": "Fewest RANSAC inliers for found to be true, 4-200 (default 10)",
              "type": "integer"
            },
            "ratio": {
              "description": "Lowe's ratio test threshold, 0.5-0.95 (default 0.75): a match is kept when its distance is below ratio times the second-best distance",
              "type": "number"
            },
            "reproj_threshold": {
              "description": "RANSAC reprojection error in pixels below which a match is an inlier, 0.5-20 (default 3)",
              "type": "number"
            },
            "template": {
              "description": "Base64 of the pattern to find, same formats. At most 1 million pixels and about 1 MB. Needs visible texture or corners; a flat-coloured pattern has no features.",
              "type": "string"
            }
          },
          "required": [
            "image",
            "template"
          ]
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON