# Link to this section Summary

## Types

Type that represents an Saliency.StaticSaliency struct.

## Functions

This function perform a binary map of given saliency map. This is obtained in this way

This function perform a binary map of given saliency map. This is obtained in this way

# t()

View Source
@type t() :: %Evision.Saliency.StaticSaliency{ref: reference()}

Type that represents an Saliency.StaticSaliency struct.

• ref. reference()

The underlying erlang resource variable.

# computeBinaryMap(self, saliencyMap)

View Source
@spec computeBinaryMap(t(), Evision.Mat.maybe_mat_in()) ::
Evision.Mat.t() | false | {:error, String.t()}

This function perform a binary map of given saliency map. This is obtained in this way:

##### Positional Arguments
• self: Evision.Saliency.StaticSaliency.t()

• saliencyMap: Evision.Mat.t().

the saliency map obtained through one of the specialized algorithms

##### Return
• retval: bool

• binaryMap: Evision.Mat.t().

the binary map

In a first step, to improve the definition of interest areas and facilitate identification of targets, a segmentation by clustering is performed, using K-means algorithm. Then, to gain a binary representation of clustered saliency map, since values of the map can vary according to the characteristics of frame under analysis, it is not convenient to use a fixed threshold. So, Otsu's algorithm* is used, which assumes that the image to be thresholded contains two classes of pixels or bi-modal histograms (e.g. foreground and back-ground pixels); later on, the algorithm calculates the optimal threshold separating those two classes, so that their intra-class variance is minimal.

Python prototype (for reference only):

computeBinaryMap(_saliencyMap[, _binaryMap]) -> retval, _binaryMap

# computeBinaryMap(self, saliencyMap, opts)

View Source
@spec computeBinaryMap(t(), Evision.Mat.maybe_mat_in(), [{atom(), term()}, ...] | nil) ::
Evision.Mat.t() | false | {:error, String.t()}

This function perform a binary map of given saliency map. This is obtained in this way:

##### Positional Arguments
• self: Evision.Saliency.StaticSaliency.t()

• saliencyMap: Evision.Mat.t().

the saliency map obtained through one of the specialized algorithms

##### Return
• retval: bool

• binaryMap: Evision.Mat.t().

the binary map

In a first step, to improve the definition of interest areas and facilitate identification of targets, a segmentation by clustering is performed, using K-means algorithm. Then, to gain a binary representation of clustered saliency map, since values of the map can vary according to the characteristics of frame under analysis, it is not convenient to use a fixed threshold. So, Otsu's algorithm* is used, which assumes that the image to be thresholded contains two classes of pixels or bi-modal histograms (e.g. foreground and back-ground pixels); later on, the algorithm calculates the optimal threshold separating those two classes, so that their intra-class variance is minimal.

Python prototype (for reference only):

computeBinaryMap(_saliencyMap[, _binaryMap]) -> retval, _binaryMap