# arrayfire.vision module

Computer vision functions (FAST, ORB, etc)

`arrayfire.vision.``dog`(image, radius1, radius2)

  Difference of gaussians.

  Parameters:

  image : af.Array

  > A 2D array specifying an image.

  radius1 : scalar.

  > The radius of first gaussian kernel.

  radius2 : scalar.

  > The radius of second gaussian kernel.

  Returns:

  out : af.Array

  > A multi dimensional array containing the difference of gaussians.

`arrayfire.vision.``fast`(image, threshold=20.0, arc_length=9, non_max=True, feature_ratio=0.05, edge=3)

  FAST feature detector.

  Parameters:

  image : af.Array

  > A 2D array representing an image.

  threshold : scalar. optional. default: 20.0.

  > FAST threshold for which a pixel of the circle around a central pixel is consdered.

  arc_length : scalar. optional. default: 9

  > The minimum length of arc length to be considered. Max length should be 16.

  non_max : Boolean. optional. default: True

  > A boolean flag specifying if non max suppression has to be performed.

  feature_ratio : scalar. optional. default: 0.05 (5%)

  > Specifies the maximum ratio of features to pixels in the image.

  edge : scalar. optional. default: 3.

  > Specifies the number of edge rows and columns to be ignored.

  Returns:

  features : af.Features()

  > Contains the location and score. Orientation and size are not computed.

`arrayfire.vision.``gloh`(image, num_layers=3, contrast_threshold=0.04, edge_threshold=10.0, initial_sigma=1.6, double_input=True, intensity_scale=0.00390625, feature_ratio=0.05)

  GLOH feature detector and descriptor.

  Parameters:

  image : af.Array

  > A 2D array representing an image

  num_layers : optional: integer. Default: 3

  > Number of layers per octave. The number of octaves is calculated internally.

  contrast_threshold : optional: float. Default: 0.04

  > Threshold used to filter out features that have low contrast.

  edge_threshold : optional: float. Default: 10.0

  > Threshold used to filter out features that are too edge-like.

  initial_sigma : optional: float. Default: 1.6

  > The sigma value used to filter the input image at the first octave.

  double_input : optional: bool. Default: True

  > If True, the input image will be scaled to double the size for the first octave.

  intensity_scale : optional: float. Default: 1.0/255

  > The inverse of the difference between maximum and minimum intensity values.

  feature_ratio : optional: float. Default: 0.05

  > Specifies the maximum number of features to detect as a ratio of image pixels.

  Returns:

  (features, descriptor) : tuple of (af.Features(), af.Array)

  > - descriptor is an af.Array of size N x 272

`arrayfire.vision.``hamming_matcher`(query, database, dim=0, num_nearest=1)

  Hamming distance matcher.

  Parameters:

  query : af.Array

  > A query feature descriptor

  database : af.Array

  > A multi dimensional array containing the feature descriptor database.

  dim : scalar. optional. default: 0.

  > Specifies the dimension along which feature descriptor lies.

  num_nearest: scalar. optional. default: 1.

  > Specifies the number of nearest neighbors to find.

  Returns:

  (location, distance): tuple of af.Array

  > location and distances of closest matches.

`arrayfire.vision.``harris`(image, max_corners=500, min_response=100000.0, sigma=1.0, block_size=0, k_thr=0.04)

  Harris corner detector.

  Parameters:

  image : af.Array

  > A 2D array specifying an image.

  max_corners : scalar. optional. default: 500.

  > Specifies the maximum number of corners to be calculated.

  min_response : scalar. optional. default: 1E5

  > Specifies the cutoff score for a corner to be considered

  sigma : scalar. optional. default: 1.0

  > - Specifies the standard deviation of a circular window.
  > - Only used when block_size == 0. Must be >= 0.5 and <= 5.0.

  block_size : scalar. optional. default: 0

  > Specifies the window size.

  k_thr : scalar. optional. default: 0.04

  > Harris constant. must be >= 0.01

  Returns:

  features : af.Features()

  > Contains the location and score. Orientation and size are not computed.

`arrayfire.vision.``homography`(x_src, y_src, x_dst, y_dst, htype=<arrayfire.library.HOMOGRAPHY object>, ransac_threshold=3.0, iters=1000, out_type=<arrayfire.library.Dtype object>)

  Homography estimation

  Parameters:

  x_src : af.Array

  > A list of x co-ordinates of the source points.

  y_src : af.Array

  > A list of y co-ordinates of the source points.

  x_dst : af.Array

  > A list of x co-ordinates of the destination points.

  y_dst : af.Array

  > A list of y co-ordinates of the destination points.

  htype : optional: af.HOMOGRAPHY. Default: HOMOGRAPHY.RANSAC

  > htype can be one of
  >   - HOMOGRAPHY.RANSAC: RANdom SAmple Consensus will be used to evaluate quality.
  >   - HOMOGRAPHY.LMEDS : Least MEDian of Squares is used to evaluate quality.

  ransac_threshold : optional: scalar. Default: 3.0

  > If htype is HOMOGRAPHY.RANSAC, it specifies the L2-distance threshold for inliers.

  out_type : optional. af.Dtype. Default: Dtype.f32.

  > Specifies the output data type.

  Returns: | (H, inliers) : A tuple of (af.Array, integer)

`arrayfire.vision.``match_template`(image, template, match_type=<arrayfire.library.MATCH object>)

  Find the closest match of a template in an image.

  Parameters:

  image : af.Array

  > A multi dimensional array specifying an image or batch of images.

  template : af.Array

  > A multi dimensional array specifying a template or batch of templates.

  match_type: optional: af.MATCH. default: af.MATCH.SAD

  > Specifies the match function metric.

  Returns:

  out : af.Array

  > An array containing the score of the match at each pixel.

`arrayfire.vision.``nearest_neighbour`(query, database, dim=0, num_nearest=1, match_type=<arrayfire.library.MATCH object>)

  Nearest Neighbour matcher.

  Parameters:

  query : af.Array

  > A query feature descriptor

  database : af.Array

  > A multi dimensional array containing the feature descriptor database.

  dim : scalar. optional. default: 0.

  > Specifies the dimension along which feature descriptor lies.

  num_nearest: scalar. optional. default: 1.

  > Specifies the number of nearest neighbors to find.

  match_type: optional: af.MATCH. default: af.MATCH.SSD

  > Specifies the match function metric.

  Returns:

  (location, distance): tuple of af.Array

  > location and distances of closest matches.

`arrayfire.vision.``orb`(image, threshold=20.0, max_features=400, scale=1.5, num_levels=4, blur_image=False)

  ORB Feature descriptor.

  Parameters:

  image : af.Array

  > A 2D array representing an image.

  threshold : scalar. optional. default: 20.0.

  > FAST threshold for which a pixel of the circle around a central pixel is consdered.

  max_features : scalar. optional. default: 400.

  > Specifies the maximum number of features to be considered.

  scale : scalar. optional. default: 1.5.

  > Specifies the factor by which images are down scaled at each level.

  num_levles : scalar. optional. default: 4.

  > Specifies the number of levels used in the image pyramid.

  blur_image : Boolean. optional. default: False.

  > Flag specifying if the input has to be blurred before computing descriptors. A gaussian filter with sigma = 2 is applied if True.

  Returns:

  (features, descriptor) : tuple of (af.Features(), af.Array)

  > - descriptor is an af.Array of size N x 8

`arrayfire.vision.``sift`(image, num_layers=3, contrast_threshold=0.04, edge_threshold=10.0, initial_sigma=1.6, double_input=True, intensity_scale=0.00390625, feature_ratio=0.05)

  SIFT feature detector and descriptor.

  Parameters:

  image : af.Array

  > A 2D array representing an image

  num_layers : optional: integer. Default: 3

  > Number of layers per octave. The number of octaves is calculated internally.

  contrast_threshold : optional: float. Default: 0.04

  > Threshold used to filter out features that have low contrast.

  edge_threshold : optional: float. Default: 10.0

  > Threshold used to filter out features that are too edge-like.

  initial_sigma : optional: float. Default: 1.6

  > The sigma value used to filter the input image at the first octave.

  double_input : optional: bool. Default: True

  > If True, the input image will be scaled to double the size for the first octave.

  intensity_scale : optional: float. Default: 1.0/255

  > The inverse of the difference between maximum and minimum intensity values.

  feature_ratio : optional: float. Default: 0.05

  > Specifies the maximum number of features to detect as a ratio of image pixels.

  Returns:

  (features, descriptor) : tuple of (af.Features(), af.Array)

  > - descriptor is an af.Array of size N x 128

`arrayfire.vision.``susan`(image, radius=3, diff_thr=32, geom_thr=10, feature_ratio=0.05, edge=3)

  SUSAN corner detector.

  Parameters:

  image : af.Array

  > A 2D array specifying an image.

  radius : scalar. optional. default: 500.

  > Specifies the radius of each pixel neighborhood.

  diff_thr : scalar. optional. default: 1E5

  > Specifies the intensity difference threshold.

  geom_thr : scalar. optional. default: 1.0

  > Specifies the geometric threshold.

  feature_ratio : scalar. optional. default: 0.05 (5%)

  > Specifies the ratio of corners found to number of pixels.

  edge : scalar. optional. default: 3

  > Specifies the number of edge rows and columns that are ignored.

  Returns:

  features : af.Features()

  > Contains the location and score. Orientation and size are not computed.