View Source Evision.Detail.AffineBestOf2NearestMatcher (Evision v0.2.1)

Summary

Types

t()

Type that represents an Detail.AffineBestOf2NearestMatcher struct.

Functions

Constructs a "best of 2 nearest" matcher that expects affine transformation between images

Constructs a "best of 2 nearest" matcher that expects affine transformation between images

Performs images matching.

Performs images matching.

collectGarbage

create

create

isThreadSafe

Types

@type t() :: %Evision.Detail.AffineBestOf2NearestMatcher{ref: reference()}

Type that represents an Detail.AffineBestOf2NearestMatcher struct.

  • ref. reference()

    The underlying erlang resource variable.

Functions

Link to this function

affineBestOf2NearestMatcher()

View Source
@spec affineBestOf2NearestMatcher() :: t() | {:error, String.t()}

Constructs a "best of 2 nearest" matcher that expects affine transformation between images

Keyword Arguments
  • full_affine: bool.

    whether to use full affine transformation with 6 degress of freedom or reduced transformation with 4 degrees of freedom using only rotation, translation and uniform scaling

  • try_use_gpu: bool.

    Should try to use GPU or not

  • match_conf: float.

    Match distances ration threshold

  • num_matches_thresh1: int.

    Minimum number of matches required for the 2D affine transform estimation used in the inliers classification step

Return
  • self: Evision.Detail.AffineBestOf2NearestMatcher.t()

@sa cv::estimateAffine2D cv::estimateAffinePartial2D

Python prototype (for reference only):

AffineBestOf2NearestMatcher([, full_affine[, try_use_gpu[, match_conf[, num_matches_thresh1]]]]) -> <detail_AffineBestOf2NearestMatcher object>
Link to this function

affineBestOf2NearestMatcher(opts)

View Source
@spec affineBestOf2NearestMatcher(
  [
    full_affine: term(),
    match_conf: term(),
    num_matches_thresh1: term(),
    try_use_gpu: term()
  ]
  | nil
) :: t() | {:error, String.t()}

Constructs a "best of 2 nearest" matcher that expects affine transformation between images

Keyword Arguments
  • full_affine: bool.

    whether to use full affine transformation with 6 degress of freedom or reduced transformation with 4 degrees of freedom using only rotation, translation and uniform scaling

  • try_use_gpu: bool.

    Should try to use GPU or not

  • match_conf: float.

    Match distances ration threshold

  • num_matches_thresh1: int.

    Minimum number of matches required for the 2D affine transform estimation used in the inliers classification step

Return
  • self: Evision.Detail.AffineBestOf2NearestMatcher.t()

@sa cv::estimateAffine2D cv::estimateAffinePartial2D

Python prototype (for reference only):

AffineBestOf2NearestMatcher([, full_affine[, try_use_gpu[, match_conf[, num_matches_thresh1]]]]) -> <detail_AffineBestOf2NearestMatcher object>
@spec apply2(Evision.Detail.Detail.AffineBestOf2NearestMatcher.t(), [
  Evision.Detail.ImageFeatures.t()
]) ::
  [Evision.Detail.MatchesInfo.t()] | {:error, String.t()}

Performs images matching.

Positional Arguments
  • self: Evision.Detail.AffineBestOf2NearestMatcher.t()

  • features: [Evision.Detail.ImageFeatures].

    Features of the source images

Keyword Arguments
  • mask: Evision.Mat.t().

    Mask indicating which image pairs must be matched

Return
  • pairwise_matches: [Evision.Detail.MatchesInfo].

    Found pairwise matches

The function is parallelized with the TBB library. @sa detail::MatchesInfo

Python prototype (for reference only):

apply2(features[, mask]) -> pairwise_matches
Link to this function

apply2(self, features, opts)

View Source
@spec apply2(
  Evision.Detail.Detail.AffineBestOf2NearestMatcher.t(),
  [Evision.Detail.ImageFeatures.t()],
  [{:mask, term()}] | nil
) :: [Evision.Detail.MatchesInfo.t()] | {:error, String.t()}

Performs images matching.

Positional Arguments
  • self: Evision.Detail.AffineBestOf2NearestMatcher.t()

  • features: [Evision.Detail.ImageFeatures].

    Features of the source images

Keyword Arguments
  • mask: Evision.Mat.t().

    Mask indicating which image pairs must be matched

Return
  • pairwise_matches: [Evision.Detail.MatchesInfo].

    Found pairwise matches

The function is parallelized with the TBB library. @sa detail::MatchesInfo

Python prototype (for reference only):

apply2(features[, mask]) -> pairwise_matches
Link to this function

apply(self, features1, features2)

View Source
@spec apply(
  Evision.Detail.Detail.AffineBestOf2NearestMatcher.t(),
  Evision.Detail.ImageFeatures.t(),
  Evision.Detail.ImageFeatures.t()
) :: Evision.Detail.MatchesInfo.t() | {:error, String.t()}

apply

Positional Arguments
  • self: Evision.Detail.AffineBestOf2NearestMatcher.t()

  • features1: Evision.Detail.ImageFeatures.t().

    First image features

  • features2: Evision.Detail.ImageFeatures.t().

    Second image features

Return
  • matches_info: Evision.Detail.MatchesInfo.t().

    Found matches

Has overloading in C++

Python prototype (for reference only):

apply(features1, features2) -> matches_info
@spec collectGarbage(Evision.Detail.Detail.AffineBestOf2NearestMatcher.t()) ::
  Evision.Detail.Detail.AffineBestOf2NearestMatcher.t() | {:error, String.t()}

collectGarbage

Positional Arguments
  • self: Evision.Detail.AffineBestOf2NearestMatcher.t()

Python prototype (for reference only):

collectGarbage() -> None
@spec create() :: Evision.Detail.BestOf2NearestMatcher.t() | {:error, String.t()}

create

Keyword Arguments
  • try_use_gpu: bool.
  • match_conf: float.
  • num_matches_thresh1: int.
  • num_matches_thresh2: int.
  • matches_confindece_thresh: double.
Return
  • retval: Evision.Detail.BestOf2NearestMatcher.t()

Python prototype (for reference only):

create([, try_use_gpu[, match_conf[, num_matches_thresh1[, num_matches_thresh2[, matches_confindece_thresh]]]]]) -> retval
@spec create(
  [
    match_conf: term(),
    matches_confindece_thresh: term(),
    num_matches_thresh1: term(),
    num_matches_thresh2: term(),
    try_use_gpu: term()
  ]
  | nil
) :: Evision.Detail.BestOf2NearestMatcher.t() | {:error, String.t()}

create

Keyword Arguments
  • try_use_gpu: bool.
  • match_conf: float.
  • num_matches_thresh1: int.
  • num_matches_thresh2: int.
  • matches_confindece_thresh: double.
Return
  • retval: Evision.Detail.BestOf2NearestMatcher.t()

Python prototype (for reference only):

create([, try_use_gpu[, match_conf[, num_matches_thresh1[, num_matches_thresh2[, matches_confindece_thresh]]]]]) -> retval
@spec isThreadSafe(Evision.Detail.Detail.AffineBestOf2NearestMatcher.t()) ::
  boolean() | {:error, String.t()}

isThreadSafe

Positional Arguments
  • self: Evision.Detail.AffineBestOf2NearestMatcher.t()
Return
  • retval: bool

@return True, if it's possible to use the same matcher instance in parallel, false otherwise

Python prototype (for reference only):

isThreadSafe() -> retval