/// <summary> /// Finds the best match for each descriptor from a query set. Train descriptors collection that was set by the Add function is used. /// </summary> /// <param name="queryDescriptors">Query set of descriptors.</param> /// <param name="matches">If a query descriptor is masked out in mask , no match is added for this descriptor. So, matches size may be smaller than the query descriptors count.</param> /// <param name="masks">Mask specifying permissible matches between an input query and train matrices of descriptors.</param> public void Match( IInputArray queryDescriptors, VectorOfDMatch matches, IInputArrayOfArrays masks = null ) { using (InputArray iaQueryDesccriptor = queryDescriptors.GetInputArray()) using (InputArray iaMasks = masks == null ? InputArray.GetEmpty() : masks.GetInputArray()) { Features2DInvoke.cveDescriptorMatcherMatch2(_descriptorMatcherPtr, iaQueryDesccriptor, matches, iaMasks); } }