### Method

# Vips Image match

#### Declaration [src]

    int
    vips_match (
      VipsImage* ref,
      VipsImage* sec,
      VipsImage** out,
      int xr1,
      int yr1,
      int xs1,
      int ys1,
      int xr2,
      int yr2,
      int xs2,
      int ys2,
      ...
    )

#### Description [src]

Scale, rotate and translate `sec` so that the tie-points line up.

If `search` is `TRUE`, before performing the transformation, the tie-points are improved by searching an area of `sec` of size `harea` for a match of size `hwindow` to `ref`.

This function will only work well for small rotates and scales.

Optional arguments

- `search`: `gboolean`, search to improve tie-points
- `hwindow`: `gint`, half window size
- `harea`: `gint`, half search size
- `interpolate`: `VipsInterpolate`, interpolate pixels with this.

This method is not directly available to language bindings.

#### Parameters

`sec`

  Type: `VipsImage`

  Secondary image.

  The data is owned by the caller of the method.

`out`

  Type: `VipsImage`

  Output image.

  The argument will be set by the function.
  The caller of the method takes ownership of the returned data, and is responsible for freeing it.

`xr1`

  Type: `int`

  First reference tie-point.

`yr1`

  Type: `int`

  First reference tie-point.

`xs1`

  Type: `int`

  First secondary tie-point.

`ys1`

  Type: `int`

  First secondary tie-point.

`xr2`

  Type: `int`

  Second reference tie-point.

`yr2`

  Type: `int`

  Second reference tie-point.

`xs2`

  Type: `int`

  Second secondary tie-point.

`ys2`

  Type: `int`

  Second secondary tie-point.

`...`

  Type: ``

  `NULL`-terminated list of optional named arguments.

#### Return value

Type: `int`

0 on success, -1 on error.