arrayfire.vision module

Computer vision functions (FAST, ORB, etc)

arrayfire.vision.dog(image, radius1, radius2)[source]

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)[source]

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)[source]

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)[source]

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)[source]

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>)[source]

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>)[source]

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>)[source]

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)[source]

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)[source]

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)[source]

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.