Exemplo n.º 1
0
        //
        // 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
        }