Skip to content

Template Matching

Version v1

Apply Template Matching to an image. Block is based on OpenCV library function called cv2.matchTemplate(...) that searches for a template image within a larger image. This is often used in computer vision tasks where you need to find a specific object or pattern in a scene, like detecting logos, objects, or specific regions in an image.

Please take into account the following characteristics of block: * it tends to produce overlapping and duplicated predictions, hence we added NMS which can be disabled * block may find very large number of matches in some cases due to simplicity of methods being used - in that cases NMS may be computationally intractable and should be disabled

Output from the block is in a form of sv.Detections objects which can be nicely paired with other blocks accepting this kind of input (like visualization blocks).

Type identifier

Use the following identifier in step "type" field: roboflow_core/template_matching@v1to add the block as as step in your workflow.

Properties

Name Type Description Refs
name str The unique name of this step..
matching_threshold float The threshold value for template matching..
apply_nms bool Flag to decide if NMS should be applied at the output detections..
nms_threshold float The threshold value NMS procedure (if to be applied)..

The Refs column marks possibility to parametrise the property with dynamic values available in workflow runtime. See Bindings for more info.

Available Connections

Check what blocks you can connect to Template Matching in version v1.

The available connections depend on its binding kinds. Check what binding kinds Template Matching in version v1 has.

Bindings
  • input

    • image (image): The input image for this step..
    • template (image): The template image for this step..
    • matching_threshold (float): The threshold value for template matching..
    • apply_nms (boolean): Flag to decide if NMS should be applied at the output detections..
    • nms_threshold (float_zero_to_one): The threshold value NMS procedure (if to be applied)..
  • output

Example JSON definition of step Template Matching in version v1
{
    "name": "<your_step_name_here>",
    "type": "roboflow_core/template_matching@v1",
    "image": "$inputs.image",
    "template": "$inputs.template",
    "matching_threshold": 0.8,
    "apply_nms": "$inputs.apply_nms",
    "nms_threshold": "$inputs.nms_threshold"
}