// // C++: void javaDescriptorExtractor::compute(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat& descriptors) // /** * <p>Computes the descriptors for a set of keypoints detected in an image (first * variant) or image set (second variant).</p> * * @param images Image set. * @param keypoints Input collection of keypoints. Keypoints for which a * descriptor cannot be computed are removed and the remaining ones may be * reordered. Sometimes new keypoints can be added, for example: * <code>SIFT</code> duplicates a keypoint with several dominant orientations * (for each orientation). * @param descriptors Computed descriptors. In the second variant of the method * <code>descriptors[i]</code> are descriptors computed for a <code>keypoints[i]</code>. * Row <code>j</code> is the <code>keypoints</code> (or <code>keypoints[i]</code>) * is the descriptor for keypoint <code>j</code>-th keypoint. * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_descriptor_extractors.html#descriptorextractor-compute">org.opencv.features2d.DescriptorExtractor.compute</a> */ public void compute(List <Mat> images, List <MatOfKeyPoint> keypoints, List <Mat> descriptors) { ThrowIfDisposed(); #if UNITY_PRO_LICENSE || ((UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR) || UNITY_5 Mat images_mat = Converters.vector_Mat_to_Mat(images); List <Mat> keypoints_tmplm = new List <Mat> ((keypoints != null) ? keypoints.Count : 0); Mat keypoints_mat = Converters.vector_vector_KeyPoint_to_Mat(keypoints, keypoints_tmplm); Mat descriptors_mat = new Mat(); features2d_DescriptorExtractor_compute_11(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj, descriptors_mat.nativeObj); Converters.Mat_to_vector_vector_KeyPoint(keypoints_mat, keypoints); Converters.Mat_to_vector_Mat(descriptors_mat, descriptors); return; #else return; #endif }