# detectMinEigenFeatures

Detect corners using minimum eigenvalue algorithm

## Syntax

``points = detectMinEigenFeatures(I)``
``points = detectMinEigenFeatures(I,Name,Value)``

## Description

example

````points = detectMinEigenFeatures(I)` returns a `cornerPoints` object `points` that contains information about corner features detected in the 2-D grayscale or binary input using the minimum eigenvalue algorithm developed by Shi and Tomasi.```
````points = detectMinEigenFeatures(I,Name,Value)` uses additional options specified by one or more name-value arguments.```

## Examples

collapse all

`I = checkerboard;`

Find the corners.

`corners = detectMinEigenFeatures(I);`

Display the results.

```imshow(I); hold on; plot(corners.selectStrongest(50));```

## Input Arguments

collapse all

Input image, specified as an M-by-N 2-D grayscale or binary image. The input image must be real and nonsparse.

Data Types: `single` | `double` | `int16` | `uint8` | `uint16` | `logical`

### Name-Value Arguments

Specify optional pairs of arguments as `Name1=Value1,...,NameN=ValueN`, where `Name` is the argument name and `Value` is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose `Name` in quotes.

Example: `'MinQuality'`,`'0.01'`,`'ROI'`, `[50,150,100,200]` specifies that the detector must use a 1% minimum accepted quality of corners within the designated region of interest. This region of interest is located at `x`=`50`, `y`=`150`. The ROI has a width of `100` pixels, and a height of `200` pixels.

Minimum accepted quality of corners, specified as the comma-separated pair consisting of '`MinQuality`' and a scalar value in the range [0,1].

The minimum accepted quality of corners represents a fraction of the maximum corner metric value in the image. Larger values can be used to remove erroneous corners.

Example: `'MinQuality'`, `0.01`

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64`

Gaussian filter dimension, specified as the comma-separated pair consisting of '`FilterSize`' and an odd integer value in the range [3, inf).

The Gaussian filter smooths the gradient of the input image.

The function uses the `FilterSize` value to calculate the filter’s dimensions, `FilterSize`-by-`FilterSize`. It also defines the standard deviation as `FilterSize`/3.

Example: `'FilterSize'`, `5`

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64`

Rectangular region for corner detection, specified as a comma-separated pair consisting of '`ROI`' and a vector of the format [x y width height]. The first two integer values [x y] represent the location of the upper-left corner of the region of interest. The last two integer values represent the width and height.

Example: `'ROI'`, `[50,150,100,200]`

## Output Arguments

collapse all

Corner points, returned as a `cornerPoints` object. The object contains information about the point features detected in the 2-D grayscale or binary input image.

## References

[1] Shi, J., and C. Tomasi, "Good Features to Track," Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, June 1994, pp. 593–600.

## Version History

Introduced in R2013a