Skip to content

aruco_DetectorParameters

objdetectclassOpenCV 5.0.0
import { aruco_DetectorParameters } from '@banou/opencv-wasm'

Use after await initOpenCV(). See the initialization and named imports guide.

ARGUMENTSConstructor or factory
CLASSaruco_DetectorParameters
RETURN TYPEOwned native handle
Call structure. A void return can still write to destination arguments. The parameter descriptions define inputs, outputs and ownership.

Native object: release it with using or delete(). Factories can return null; check before calling methods.

struct DetectorParameters is used by ArucoDetector

Constructors and members

static new

Create an owned aruco_DetectorParameters object. Release native handles with using or delete().

new(): aruco_DetectorParameters;
Returns

The aruco_DetectorParameters result.

clone

Create another handle to the same native object. This retains the object without copying its pixels or algorithm state; dispose both handles separately.

clone(): this;
Returns

The this result.

adaptiveThreshWinSizeMin

minimum window size for adaptive thresholding before finding contours (default 3).

adaptiveThreshWinSizeMin: number;

adaptiveThreshWinSizeMax

maximum window size for adaptive thresholding before finding contours (default 23).

adaptiveThreshWinSizeMax: number;

adaptiveThreshWinSizeStep

increments from adaptiveThreshWinSizeMin to adaptiveThreshWinSizeMax during the thresholding (default 10).

adaptiveThreshWinSizeStep: number;

adaptiveThreshConstant

constant for adaptive thresholding before finding contours (default 7)

adaptiveThreshConstant: number;

minMarkerPerimeterRate

determine minimum perimeter for marker contour to be detected.

This is defined as a rate respect to the maximum dimension of the input image (default 0.03).

minMarkerPerimeterRate: number;

maxMarkerPerimeterRate

determine maximum perimeter for marker contour to be detected.

This is defined as a rate respect to the maximum dimension of the input image (default 4.0).

maxMarkerPerimeterRate: number;

polygonalApproxAccuracyRate

minimum accuracy during the polygonal approximation process to determine which contours are squares. (default 0.03)

polygonalApproxAccuracyRate: number;

minCornerDistanceRate

minimum distance between corners for detected markers relative to its perimeter (default 0.05)

minCornerDistanceRate: number;

minDistanceToBorder

minimum distance of any corner to the image border for detected markers (in pixels) (default 3)

minDistanceToBorder: number;

minMarkerDistanceRate

minimum average distance between the corners of the two markers to be grouped (default 0.125).

The rate is relative to the smaller perimeter of the two markers. Two markers are grouped if average distance between the corners of the two markers is less than min(MarkerPerimeter1, MarkerPerimeter2)*minMarkerDistanceRate.

default value is 0.125 because 0.125*MarkerPerimeter = (MarkerPerimeter / 4) * 0.5 = half the side of the marker.

Note: default value was changed from 0.05 after 4.8.1 release, because the filtering algorithm has been changed. Now a few candidates from the same group can be added to the list of candidates if they are far from each other. See: minGroupDistance.

minMarkerDistanceRate: number;

minGroupDistance

minimum average distance between the corners of the two markers in group to add them to the list of candidates

The average distance between the corners of the two markers is calculated relative to its module size (default 0.21).

minGroupDistance: number;

cornerRefinementMethod

default value CORNER_REFINE_NONE

cornerRefinementMethod: number;

cornerRefinementWinSize

maximum window size for the corner refinement process (in pixels) (default 5).

The window size may decrease if the ArUco marker is too small, check relativeCornerRefinmentWinSize. The final window size is calculated as: min(cornerRefinementWinSize, averageArucoModuleSize*relativeCornerRefinmentWinSize), where averageArucoModuleSize is average module size of ArUco marker in pixels. (ArUco marker is composed of black and white modules)

cornerRefinementWinSize: number;

relativeCornerRefinmentWinSize

Dynamic window size for corner refinement relative to Aruco module size (default 0.3).

The final window size is calculated as: min(cornerRefinementWinSize, averageArucoModuleSize*relativeCornerRefinmentWinSize), where averageArucoModuleSize is average module size of ArUco marker in pixels. (ArUco marker is composed of black and white modules) In the case of markers located far from each other, it may be useful to increase the value of the parameter to 0.4-0.5. In the case of markers located close to each other, it may be useful to decrease the parameter value to 0.1-0.2.

relativeCornerRefinmentWinSize: number;

cornerRefinementMaxIterations

maximum number of iterations for stop criteria of the corner refinement process (default 30).

cornerRefinementMaxIterations: number;

cornerRefinementMinAccuracy

minimum error for the stop cristeria of the corner refinement process (default: 0.1)

cornerRefinementMinAccuracy: number;

markerBorderBits

number of bits of the marker border, i.e. marker border width (default 1).

markerBorderBits: number;

perspectiveRemovePixelPerCell

number of bits (per dimension) for each cell of the marker when removing the perspective (default 4).

perspectiveRemovePixelPerCell: number;

perspectiveRemoveIgnoredMarginPerCell

width of the margin of pixels on each cell not considered for the determination of the cell bit.

Represents the rate respect to the total size of the cell, i.e. perspectiveRemovePixelPerCell (default 0.13)

perspectiveRemoveIgnoredMarginPerCell: number;

maxErroneousBitsInBorderRate

maximum number of accepted erroneous bits in the border (i.e. number of allowed white bits in the border).

Represented as a rate respect to the total number of bits per marker (default 0.35).

maxErroneousBitsInBorderRate: number;

minOtsuStdDev

minimum standard deviation in pixels values during the decodification step to apply Otsu thresholding (otherwise, all the bits are set to 0 or 1 depending on mean higher than 128 or not) (default 5.0)

minOtsuStdDev: number;

errorCorrectionRate

error correction rate respect to the maximum error correction capability for each dictionary (default 0.6).

errorCorrectionRate: number;

aprilTagQuadDecimate

April :: User-configurable parameters.

Detection of quads can be done on a lower-resolution image, improving speed at a cost of pose accuracy and a slight decrease in detection rate. Decoding the binary payload is still

aprilTagQuadDecimate: number;

aprilTagQuadSigma

what Gaussian blur should be applied to the segmented image (used for quad detection?)

aprilTagQuadSigma: number;

aprilTagMinClusterPixels

April :: Internal variables reject quads containing too few pixels (default 5).

aprilTagMinClusterPixels: number;

aprilTagMaxNmaxima

how many corner candidates to consider when segmenting a group of pixels into a quad (default 10).

aprilTagMaxNmaxima: number;

aprilTagCriticalRad

reject quads where pairs of edges have angles that are close to straight or close to 180 degrees.

Zero means that no quads are rejected. (In radians) (default 10*PI/180)

aprilTagCriticalRad: number;

aprilTagMaxLineFitMse

when fitting lines to the contours, what is the maximum mean squared error

aprilTagMaxLineFitMse: number;

aprilTagMinWhiteBlackDiff

add an extra check that the white model must be (overall) brighter than the black model.

When we build our model of black & white pixels, we add an extra check that the white model must be (overall) brighter than the black model. How much brighter? (in pixel values, [0,255]), (default 5)

aprilTagMinWhiteBlackDiff: number;

aprilTagDeglitch

should the thresholded image be deglitched? Only useful for very noisy images (default 0).

aprilTagDeglitch: number;

detectInvertedMarker

to check if there is a white marker.

In order to generate a "white" marker just invert a normal marker by using a tilde, ~markerImage. (default false)

detectInvertedMarker: boolean;

useAruco3Detection

enable the new and faster Aruco detection strategy.

Proposed in the paper: Romero-Ramirez et al: Speeded up detection of squared fiducial markers (2018) https://www.researchgate.net/publication/325787310_Speeded_Up_Detection_of_Squared_Fiducial_Markers

useAruco3Detection: boolean;

minSideLengthCanonicalImg

minimum side length of a marker in the canonical image. Latter is the binarized image in which contours are searched.

minSideLengthCanonicalImg: number;

minMarkerLengthRatioOriginalImg

range [0,1], eq (2) from paper. The parameter tau_i has a direct influence on the processing speed.

minMarkerLengthRatioOriginalImg: number;

validBitIdThreshold

range [0,1], define the acceptable threshold when comparing the detected marker to the dictionary during marker identification.

validBitIdThreshold: number;

readDetectorParameters

Read a new set of DetectorParameters from FileNode (use FileStorage.root()).

readDetectorParameters(fn: FileNode): boolean;
fn

fn argument (FileNode).

Returns

The boolean result.

writeDetectorParameters

Write a set of DetectorParameters to FileStorage

writeDetectorParameters(fs: FileStorage, name: EmbindString): boolean;
2 available overloads
writeDetectorParameters(fs: FileStorage): boolean;
writeDetectorParameters(fs: FileStorage, name: EmbindString): boolean;
fs

fs argument (FileStorage).

name

name argument (EmbindString).

Returns

The boolean result.

These signatures describe this package. Upstream documentation can mention optional backends that are absent from this build. Check runtime compatibility before choosing a backend or file format.