# vision.LocalMaximaFinder

Find local maxima in matrices

## Description

To find local maxima in matrices.

1. Create the `vision.LocalMaximaFinder` object and set its properties.

2. Call the object with arguments, as if it were a function.

## Creation

### Syntax

``LMaxFinder = vision.LocalMaximaFinder``
``LMaxFinder = vision.LocalMaximaFinder(maxnum,neighborsize)``
``LMaxFinder = vision.LocalMaximaFinder(Name,Value)``

### Description

example

````LMaxFinder = vision.LocalMaximaFinder` returns a local maxima finder System object, `H`, that finds local maxima in input matrices.```
````LMaxFinder = vision.LocalMaximaFinder(maxnum,neighborsize)` returns a local maxima finder object with the `MaximumNumLocalMaxima` property set to `maxnum`, `NeighborhoodSize` property set to `neighborsize`, and other specified properties set to the specified values.```
````LMaxFinder = vision.LocalMaximaFinder(Name,Value)` sets properties using one or more name-value pairs. Enclose each property name in quotes. For example, ```LMaxFinder = vision.LocalMaximaFinder('ThresholdSource','Property')``````

## Properties

expand all

Unless otherwise indicated, properties are nontunable, which means you cannot change their values after calling the object. Objects lock when you call them, and the `release` function unlocks them.

If a property is tunable, you can change its value at any time.

Maximum number of maxima to find, specified as a positive scalar integer.

Neighborhood size for zero-ing out values, specified as a two-element vector

Source of threshold, specified as `'Property'` or ```'Input port'```.

Value that all maxima should match or exceed, specified as a scalar of MATLAB® built-in numeric data type. This property applies when you set the `ThresholdSource` property to `'Property'`.

Tunable: Yes

Indicator of Hough transform matrix input, specified as `true` or `false`. The block applies additional processing, specific to Hough transform on the right and left boundaries of the input matrix. Set this property to `true` if the input is antisymmetric about the rho axis and the theta value ranges from $-\frac{\pi }{2}$ to $\frac{\pi }{2}$ radians, which correspond to a Hough matrix.

Data type of index values, specified as `double`, `single` , `uint8`, `uint16`, or `uint32`.

## Usage

### Syntax

``idx = LMaxFinder(I)``
``idx = LMaxFinder(I,threshold)``

### Description

example

````idx = LMaxFinder(I)` returns [x y] coordinates of the local maxima in an M-by-2 matrix, `idx`. M represents the number of local maximas found. The maximum value of M may not exceed the value set in the `MaximumNumLocalMaxima` property.```
````idx = LMaxFinder(I,threshold)` finds the local maxima in the input image `I`, using the threshold value `threshold`, when you set the `ThresholdSource` property to `'Input port'`.```

### Input Arguments

expand all

Video frame, specified as grayscale or truecolor (RGB).

Value that all maxima should match or exceed, specified as a scalar of MATLAB built-in numeric data type.

### Output Arguments

expand all

Local maxima, returned as an M-by-2 matrix of one-based [x y] coordinates, where M represents the number of local maximas found.

## Object Functions

To use an object function, specify the System object™ as the first input argument. For example, to release system resources of a System object named `obj`, use this syntax:

`release(obj)`

expand all

 `initialize` Initialize video frame and points to track
 `step` Run System object algorithm `release` Release resources and allow changes to System object property values and input characteristics `reset` Reset internal states of System object

## Examples

collapse all

Create an example input.

```I = [0 0 0 0 0 0 0 0 0 0 0 0; ... 0 0 0 1 1 2 3 2 1 1 0 0; ... 0 0 0 1 2 3 4 3 2 1 0 0; ... 0 0 0 1 3 5 7 5 3 1 0 0; ... 0 0 0 1 2 3 4 3 2 1 0 0; ... 0 0 0 1 1 2 3 2 1 1 0 0; ... 0 0 0 0 0 0 0 0 0 0 0 0]; ```

Create a local maxima finder object.

``` hLocalMax = vision.LocalMaximaFinder('MaximumNumLocalMaxima',1, ... 'NeighborhoodSize',[3,3], ... 'Threshold',1); ```

Find local maxima.

`location = hLocalMax(I) `
```location = 1x2 uint32 row vector 7 4 ```