// // This file is auto-generated. Please don't modify it! // package org.opencv.features2d; import java.lang.String; import java.util.ArrayList; import java.util.List; import org.opencv.core.Mat; import org.opencv.core.MatOfDMatch; import org.opencv.core.MatOfKeyPoint; import org.opencv.utils.Converters; // C++: class javaGenericDescriptorMatcher /** * <p>Abstract interface for extracting and matching a keypoint descriptor. There * are also "DescriptorExtractor" and "DescriptorMatcher" for these purposes but * their interfaces are intended for descriptors represented as vectors in a * multidimensional space. <code>GenericDescriptorMatcher</code> is a more * generic interface for descriptors. <code>DescriptorMatcher</code> and * <code>GenericDescriptorMatcher</code> have two groups of match methods: for * matching keypoints of an image with another image or with an image set.</p> * * <p>class GenericDescriptorMatcher <code></p> * * <p>// C++ code:</p> * * * <p>public:</p> * * <p>GenericDescriptorMatcher();</p> * * <p>virtual ~GenericDescriptorMatcher();</p> * * <p>virtual void add(const vector<Mat>& images,</p> * * <p>vector<vector<KeyPoint> >& keypoints);</p> * * <p>const vector<Mat>& getTrainImages() const;</p> * * <p>const vector<vector<KeyPoint> >& getTrainKeypoints() const;</p> * * <p>virtual void clear();</p> * * <p>virtual void train() = 0;</p> * * <p>virtual bool isMaskSupported() = 0;</p> * * <p>void classify(const Mat& queryImage,</p> * * <p>vector<KeyPoint>& queryKeypoints,</p> * * <p>const Mat& trainImage,</p> * * <p>vector<KeyPoint>& trainKeypoints) const;</p> * * <p>void classify(const Mat& queryImage,</p> * * <p>vector<KeyPoint>& queryKeypoints);</p> * * <p>/ *</p> * <ul> * <li> Group of methods to match keypoints from an image pair. * <li> / * </ul> * * <p>void match(const Mat& queryImage, vector<KeyPoint>& queryKeypoints,</p> * * <p>const Mat& trainImage, vector<KeyPoint>& trainKeypoints,</p> * * <p>vector<DMatch>& matches, const Mat& mask=Mat()) const;</p> * * <p>void knnMatch(const Mat& queryImage, vector<KeyPoint>& queryKeypoints,</p> * * <p>const Mat& trainImage, vector<KeyPoint>& trainKeypoints,</p> * * <p>vector<vector<DMatch> >& matches, int k,</p> * * <p>const Mat& mask=Mat(), bool compactResult=false) const;</p> * * <p>void radiusMatch(const Mat& queryImage, vector<KeyPoint>& queryKeypoints,</p> * * <p>const Mat& trainImage, vector<KeyPoint>& trainKeypoints,</p> * * <p>vector<vector<DMatch> >& matches, float maxDistance,</p> * * <p>const Mat& mask=Mat(), bool compactResult=false) const;</p> * * <p>/ *</p> * <ul> * <li> Group of methods to match keypoints from one image to an image set. * <li> / * </ul> * * <p>void match(const Mat& queryImage, vector<KeyPoint>& queryKeypoints,</p> * * <p>vector<DMatch>& matches, const vector<Mat>& masks=vector<Mat>());</p> * * <p>void knnMatch(const Mat& queryImage, vector<KeyPoint>& queryKeypoints,</p> * * <p>vector<vector<DMatch> >& matches, int k,</p> * * <p>const vector<Mat>& masks=vector<Mat>(), bool compactResult=false);</p> * * <p>void radiusMatch(const Mat& queryImage, vector<KeyPoint>& queryKeypoints,</p> * * <p>vector<vector<DMatch> >& matches, float maxDistance,</p> * * <p>const vector<Mat>& masks=vector<Mat>(), bool compactResult=false);</p> * * <p>virtual void read(const FileNode&);</p> * * <p>virtual void write(FileStorage&) const;</p> * * <p>virtual Ptr<GenericDescriptorMatcher> clone(bool emptyTrainData=false) const * = 0;</p> * * <p>protected:...</p> * * <p>};</p> * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher">org.opencv.features2d.GenericDescriptorMatcher</a> */ public class GenericDescriptorMatcher { protected final long nativeObj; protected GenericDescriptorMatcher(long addr) { nativeObj = addr; } public static final int ONEWAY = 1, FERN = 2; // // C++: void javaGenericDescriptorMatcher::add(vector_Mat images, vector_vector_KeyPoint keypoints) // /** * <p>Adds images and their keypoints to the training collection stored in the * class instance.</p> * * @param images Image collection. * @param keypoints Point collection. It is assumed that <code>keypoints[i]</code> * are keypoints detected in the image <code>images[i]</code>. * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-add">org.opencv.features2d.GenericDescriptorMatcher.add</a> */ public void add(List<Mat> images, List<MatOfKeyPoint> keypoints) { Mat images_mat = Converters.vector_Mat_to_Mat(images); List<Mat> keypoints_tmplm = new ArrayList<Mat>((keypoints != null) ? keypoints.size() : 0); Mat keypoints_mat = Converters.vector_vector_KeyPoint_to_Mat(keypoints, keypoints_tmplm); add_0(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj); return; } // // C++: void javaGenericDescriptorMatcher::classify(Mat queryImage, vector_KeyPoint& queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints) // /** * <p>Classifies keypoints from a query set.</p> * * <p>The method classifies each keypoint from a query set. The first variant of * the method takes a train image and its keypoints as an input argument. The * second variant uses the internally stored training collection that can be * built using the <code>GenericDescriptorMatcher.add</code> method.</p> * * <p>The methods do the following:</p> * <ul> * <li> Call the <code>GenericDescriptorMatcher.match</code> method to find * correspondence between the query set and the training set. * <li> Set the <code>class_id</code> field of each keypoint from the query * set to <code>class_id</code> of the corresponding keypoint from the training * set. * </ul> * * @param queryImage Query image. * @param queryKeypoints Keypoints from a query image. * @param trainImage Train image. * @param trainKeypoints Keypoints from a train image. * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-classify">org.opencv.features2d.GenericDescriptorMatcher.classify</a> */ public void classify(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints) { Mat queryKeypoints_mat = queryKeypoints; Mat trainKeypoints_mat = trainKeypoints; classify_0(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj); return; } // // C++: void javaGenericDescriptorMatcher::classify(Mat queryImage, vector_KeyPoint& queryKeypoints) // /** * <p>Classifies keypoints from a query set.</p> * * <p>The method classifies each keypoint from a query set. The first variant of * the method takes a train image and its keypoints as an input argument. The * second variant uses the internally stored training collection that can be * built using the <code>GenericDescriptorMatcher.add</code> method.</p> * * <p>The methods do the following:</p> * <ul> * <li> Call the <code>GenericDescriptorMatcher.match</code> method to find * correspondence between the query set and the training set. * <li> Set the <code>class_id</code> field of each keypoint from the query * set to <code>class_id</code> of the corresponding keypoint from the training * set. * </ul> * * @param queryImage Query image. * @param queryKeypoints Keypoints from a query image. * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-classify">org.opencv.features2d.GenericDescriptorMatcher.classify</a> */ public void classify(Mat queryImage, MatOfKeyPoint queryKeypoints) { Mat queryKeypoints_mat = queryKeypoints; classify_1(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj); return; } // // C++: void javaGenericDescriptorMatcher::clear() // /** * <p>Clears a train collection (images and keypoints).</p> * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-clear">org.opencv.features2d.GenericDescriptorMatcher.clear</a> */ public void clear() { clear_0(nativeObj); return; } // // C++: javaGenericDescriptorMatcher* javaGenericDescriptorMatcher::jclone(bool emptyTrainData = false) // public GenericDescriptorMatcher clone(boolean emptyTrainData) { GenericDescriptorMatcher retVal = new GenericDescriptorMatcher(clone_0(nativeObj, emptyTrainData)); return retVal; } public GenericDescriptorMatcher clone() { GenericDescriptorMatcher retVal = new GenericDescriptorMatcher(clone_1(nativeObj)); return retVal; } // // C++: static javaGenericDescriptorMatcher* javaGenericDescriptorMatcher::create(int matcherType) // public static GenericDescriptorMatcher create(int matcherType) { GenericDescriptorMatcher retVal = new GenericDescriptorMatcher(create_0(matcherType)); return retVal; } // // C++: bool javaGenericDescriptorMatcher::empty() // public boolean empty() { boolean retVal = empty_0(nativeObj); return retVal; } // // C++: vector_Mat javaGenericDescriptorMatcher::getTrainImages() // /** * <p>Returns a train image collection.</p> * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-gettrainimages">org.opencv.features2d.GenericDescriptorMatcher.getTrainImages</a> */ public List<Mat> getTrainImages() { List<Mat> retVal = new ArrayList<Mat>(); Mat retValMat = new Mat(getTrainImages_0(nativeObj)); Converters.Mat_to_vector_Mat(retValMat, retVal); return retVal; } // // C++: vector_vector_KeyPoint javaGenericDescriptorMatcher::getTrainKeypoints() // /** * <p>Returns a train keypoints collection.</p> * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-gettrainkeypoints">org.opencv.features2d.GenericDescriptorMatcher.getTrainKeypoints</a> */ public List<MatOfKeyPoint> getTrainKeypoints() { List<MatOfKeyPoint> retVal = new ArrayList<MatOfKeyPoint>(); Mat retValMat = new Mat(getTrainKeypoints_0(nativeObj)); Converters.Mat_to_vector_vector_KeyPoint(retValMat, retVal); return retVal; } // // C++: bool javaGenericDescriptorMatcher::isMaskSupported() // /** * <p>Returns <code>true</code> if a generic descriptor matcher supports masking * permissible matches.</p> * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-ismasksupported">org.opencv.features2d.GenericDescriptorMatcher.isMaskSupported</a> */ public boolean isMaskSupported() { boolean retVal = isMaskSupported_0(nativeObj); return retVal; } // // C++: void javaGenericDescriptorMatcher::knnMatch(Mat queryImage, vector_KeyPoint queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints, vector_vector_DMatch& matches, int k, Mat mask = Mat(), bool compactResult = false) // /** * <p>Finds the <code>k</code> best matches for each query keypoint.</p> * * <p>The methods are extended variants of <code>GenericDescriptorMatch.match</code>. * The parameters are similar, and the semantics is similar to <code>DescriptorMatcher.knnMatch</code>. * But this class does not require explicitly computed keypoint descriptors.</p> * * @param queryImage a queryImage * @param queryKeypoints a queryKeypoints * @param trainImage a trainImage * @param trainKeypoints a trainKeypoints * @param matches a matches * @param k a k * @param mask a mask * @param compactResult a compactResult * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-knnmatch">org.opencv.features2d.GenericDescriptorMatcher.knnMatch</a> */ public void knnMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints, List<MatOfDMatch> matches, int k, Mat mask, boolean compactResult) { Mat queryKeypoints_mat = queryKeypoints; Mat trainKeypoints_mat = trainKeypoints; Mat matches_mat = new Mat(); knnMatch_0(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj, matches_mat.nativeObj, k, mask.nativeObj, compactResult); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } /** * <p>Finds the <code>k</code> best matches for each query keypoint.</p> * * <p>The methods are extended variants of <code>GenericDescriptorMatch.match</code>. * The parameters are similar, and the semantics is similar to <code>DescriptorMatcher.knnMatch</code>. * But this class does not require explicitly computed keypoint descriptors.</p> * * @param queryImage a queryImage * @param queryKeypoints a queryKeypoints * @param trainImage a trainImage * @param trainKeypoints a trainKeypoints * @param matches a matches * @param k a k * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-knnmatch">org.opencv.features2d.GenericDescriptorMatcher.knnMatch</a> */ public void knnMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints, List<MatOfDMatch> matches, int k) { Mat queryKeypoints_mat = queryKeypoints; Mat trainKeypoints_mat = trainKeypoints; Mat matches_mat = new Mat(); knnMatch_1(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj, matches_mat.nativeObj, k); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } // // C++: void javaGenericDescriptorMatcher::knnMatch(Mat queryImage, vector_KeyPoint queryKeypoints, vector_vector_DMatch& matches, int k, vector_Mat masks = vector<Mat>(), bool compactResult = false) // /** * <p>Finds the <code>k</code> best matches for each query keypoint.</p> * * <p>The methods are extended variants of <code>GenericDescriptorMatch.match</code>. * The parameters are similar, and the semantics is similar to <code>DescriptorMatcher.knnMatch</code>. * But this class does not require explicitly computed keypoint descriptors.</p> * * @param queryImage a queryImage * @param queryKeypoints a queryKeypoints * @param matches a matches * @param k a k * @param masks a masks * @param compactResult a compactResult * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-knnmatch">org.opencv.features2d.GenericDescriptorMatcher.knnMatch</a> */ public void knnMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, List<MatOfDMatch> matches, int k, List<Mat> masks, boolean compactResult) { Mat queryKeypoints_mat = queryKeypoints; Mat matches_mat = new Mat(); Mat masks_mat = Converters.vector_Mat_to_Mat(masks); knnMatch_2(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, matches_mat.nativeObj, k, masks_mat.nativeObj, compactResult); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } /** * <p>Finds the <code>k</code> best matches for each query keypoint.</p> * * <p>The methods are extended variants of <code>GenericDescriptorMatch.match</code>. * The parameters are similar, and the semantics is similar to <code>DescriptorMatcher.knnMatch</code>. * But this class does not require explicitly computed keypoint descriptors.</p> * * @param queryImage a queryImage * @param queryKeypoints a queryKeypoints * @param matches a matches * @param k a k * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-knnmatch">org.opencv.features2d.GenericDescriptorMatcher.knnMatch</a> */ public void knnMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, List<MatOfDMatch> matches, int k) { Mat queryKeypoints_mat = queryKeypoints; Mat matches_mat = new Mat(); knnMatch_3(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, matches_mat.nativeObj, k); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } // // C++: void javaGenericDescriptorMatcher::match(Mat queryImage, vector_KeyPoint queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints, vector_DMatch& matches, Mat mask = Mat()) // /** * <p>Finds the best match in the training set for each keypoint from the query * set.</p> * * <p>The methods find the best match for each query keypoint. In the first variant * of the method, a train image and its keypoints are the input arguments. In * the second variant, query keypoints are matched to the internally stored * training collection that can be built using the <code>GenericDescriptorMatcher.add</code> * method. Optional mask (or masks) can be passed to specify which query and * training descriptors can be matched. Namely, <code>queryKeypoints[i]</code> * can be matched with <code>trainKeypoints[j]</code> only if <code>mask.at<uchar>(i,j)</code> * is non-zero.</p> * * @param queryImage Query image. * @param queryKeypoints Keypoints detected in <code>queryImage</code>. * @param trainImage Train image. It is not added to a train image collection * stored in the class object. * @param trainKeypoints Keypoints detected in <code>trainImage</code>. They are * not added to a train points collection stored in the class object. * @param matches Matches. If a query descriptor (keypoint) is masked out in * <code>mask</code>, match is added for this descriptor. So, <code>matches</code> * size may be smaller than the query keypoints count. * @param mask Mask specifying permissible matches between an input query and * train keypoints. * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-match">org.opencv.features2d.GenericDescriptorMatcher.match</a> */ public void match(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints, MatOfDMatch matches, Mat mask) { Mat queryKeypoints_mat = queryKeypoints; Mat trainKeypoints_mat = trainKeypoints; Mat matches_mat = matches; match_0(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj, matches_mat.nativeObj, mask.nativeObj); return; } /** * <p>Finds the best match in the training set for each keypoint from the query * set.</p> * * <p>The methods find the best match for each query keypoint. In the first variant * of the method, a train image and its keypoints are the input arguments. In * the second variant, query keypoints are matched to the internally stored * training collection that can be built using the <code>GenericDescriptorMatcher.add</code> * method. Optional mask (or masks) can be passed to specify which query and * training descriptors can be matched. Namely, <code>queryKeypoints[i]</code> * can be matched with <code>trainKeypoints[j]</code> only if <code>mask.at<uchar>(i,j)</code> * is non-zero.</p> * * @param queryImage Query image. * @param queryKeypoints Keypoints detected in <code>queryImage</code>. * @param trainImage Train image. It is not added to a train image collection * stored in the class object. * @param trainKeypoints Keypoints detected in <code>trainImage</code>. They are * not added to a train points collection stored in the class object. * @param matches Matches. If a query descriptor (keypoint) is masked out in * <code>mask</code>, match is added for this descriptor. So, <code>matches</code> * size may be smaller than the query keypoints count. * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-match">org.opencv.features2d.GenericDescriptorMatcher.match</a> */ public void match(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints, MatOfDMatch matches) { Mat queryKeypoints_mat = queryKeypoints; Mat trainKeypoints_mat = trainKeypoints; Mat matches_mat = matches; match_1(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj, matches_mat.nativeObj); return; } // // C++: void javaGenericDescriptorMatcher::match(Mat queryImage, vector_KeyPoint queryKeypoints, vector_DMatch& matches, vector_Mat masks = vector<Mat>()) // /** * <p>Finds the best match in the training set for each keypoint from the query * set.</p> * * <p>The methods find the best match for each query keypoint. In the first variant * of the method, a train image and its keypoints are the input arguments. In * the second variant, query keypoints are matched to the internally stored * training collection that can be built using the <code>GenericDescriptorMatcher.add</code> * method. Optional mask (or masks) can be passed to specify which query and * training descriptors can be matched. Namely, <code>queryKeypoints[i]</code> * can be matched with <code>trainKeypoints[j]</code> only if <code>mask.at<uchar>(i,j)</code> * is non-zero.</p> * * @param queryImage Query image. * @param queryKeypoints Keypoints detected in <code>queryImage</code>. * @param matches Matches. If a query descriptor (keypoint) is masked out in * <code>mask</code>, match is added for this descriptor. So, <code>matches</code> * size may be smaller than the query keypoints count. * @param masks Set of masks. Each <code>masks[i]</code> specifies permissible * matches between input query keypoints and stored train keypoints from the * i-th image. * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-match">org.opencv.features2d.GenericDescriptorMatcher.match</a> */ public void match(Mat queryImage, MatOfKeyPoint queryKeypoints, MatOfDMatch matches, List<Mat> masks) { Mat queryKeypoints_mat = queryKeypoints; Mat matches_mat = matches; Mat masks_mat = Converters.vector_Mat_to_Mat(masks); match_2(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, matches_mat.nativeObj, masks_mat.nativeObj); return; } /** * <p>Finds the best match in the training set for each keypoint from the query * set.</p> * * <p>The methods find the best match for each query keypoint. In the first variant * of the method, a train image and its keypoints are the input arguments. In * the second variant, query keypoints are matched to the internally stored * training collection that can be built using the <code>GenericDescriptorMatcher.add</code> * method. Optional mask (or masks) can be passed to specify which query and * training descriptors can be matched. Namely, <code>queryKeypoints[i]</code> * can be matched with <code>trainKeypoints[j]</code> only if <code>mask.at<uchar>(i,j)</code> * is non-zero.</p> * * @param queryImage Query image. * @param queryKeypoints Keypoints detected in <code>queryImage</code>. * @param matches Matches. If a query descriptor (keypoint) is masked out in * <code>mask</code>, match is added for this descriptor. So, <code>matches</code> * size may be smaller than the query keypoints count. * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-match">org.opencv.features2d.GenericDescriptorMatcher.match</a> */ public void match(Mat queryImage, MatOfKeyPoint queryKeypoints, MatOfDMatch matches) { Mat queryKeypoints_mat = queryKeypoints; Mat matches_mat = matches; match_3(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, matches_mat.nativeObj); return; } // // C++: void javaGenericDescriptorMatcher::radiusMatch(Mat queryImage, vector_KeyPoint queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints, vector_vector_DMatch& matches, float maxDistance, Mat mask = Mat(), bool compactResult = false) // /** * <p>For each query keypoint, finds the training keypoints not farther than the * specified distance.</p> * * <p>The methods are similar to <code>DescriptorMatcher.radius</code>. But this * class does not require explicitly computed keypoint descriptors.</p> * * @param queryImage a queryImage * @param queryKeypoints a queryKeypoints * @param trainImage a trainImage * @param trainKeypoints a trainKeypoints * @param matches a matches * @param maxDistance a maxDistance * @param mask a mask * @param compactResult a compactResult * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-radiusmatch">org.opencv.features2d.GenericDescriptorMatcher.radiusMatch</a> */ public void radiusMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints, List<MatOfDMatch> matches, float maxDistance, Mat mask, boolean compactResult) { Mat queryKeypoints_mat = queryKeypoints; Mat trainKeypoints_mat = trainKeypoints; Mat matches_mat = new Mat(); radiusMatch_0(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj, matches_mat.nativeObj, maxDistance, mask.nativeObj, compactResult); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } /** * <p>For each query keypoint, finds the training keypoints not farther than the * specified distance.</p> * * <p>The methods are similar to <code>DescriptorMatcher.radius</code>. But this * class does not require explicitly computed keypoint descriptors.</p> * * @param queryImage a queryImage * @param queryKeypoints a queryKeypoints * @param trainImage a trainImage * @param trainKeypoints a trainKeypoints * @param matches a matches * @param maxDistance a maxDistance * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-radiusmatch">org.opencv.features2d.GenericDescriptorMatcher.radiusMatch</a> */ public void radiusMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, Mat trainImage, MatOfKeyPoint trainKeypoints, List<MatOfDMatch> matches, float maxDistance) { Mat queryKeypoints_mat = queryKeypoints; Mat trainKeypoints_mat = trainKeypoints; Mat matches_mat = new Mat(); radiusMatch_1(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, trainImage.nativeObj, trainKeypoints_mat.nativeObj, matches_mat.nativeObj, maxDistance); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } // // C++: void javaGenericDescriptorMatcher::radiusMatch(Mat queryImage, vector_KeyPoint queryKeypoints, vector_vector_DMatch& matches, float maxDistance, vector_Mat masks = vector<Mat>(), bool compactResult = false) // /** * <p>For each query keypoint, finds the training keypoints not farther than the * specified distance.</p> * * <p>The methods are similar to <code>DescriptorMatcher.radius</code>. But this * class does not require explicitly computed keypoint descriptors.</p> * * @param queryImage a queryImage * @param queryKeypoints a queryKeypoints * @param matches a matches * @param maxDistance a maxDistance * @param masks a masks * @param compactResult a compactResult * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-radiusmatch">org.opencv.features2d.GenericDescriptorMatcher.radiusMatch</a> */ public void radiusMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, List<MatOfDMatch> matches, float maxDistance, List<Mat> masks, boolean compactResult) { Mat queryKeypoints_mat = queryKeypoints; Mat matches_mat = new Mat(); Mat masks_mat = Converters.vector_Mat_to_Mat(masks); radiusMatch_2(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, matches_mat.nativeObj, maxDistance, masks_mat.nativeObj, compactResult); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } /** * <p>For each query keypoint, finds the training keypoints not farther than the * specified distance.</p> * * <p>The methods are similar to <code>DescriptorMatcher.radius</code>. But this * class does not require explicitly computed keypoint descriptors.</p> * * @param queryImage a queryImage * @param queryKeypoints a queryKeypoints * @param matches a matches * @param maxDistance a maxDistance * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-radiusmatch">org.opencv.features2d.GenericDescriptorMatcher.radiusMatch</a> */ public void radiusMatch(Mat queryImage, MatOfKeyPoint queryKeypoints, List<MatOfDMatch> matches, float maxDistance) { Mat queryKeypoints_mat = queryKeypoints; Mat matches_mat = new Mat(); radiusMatch_3(nativeObj, queryImage.nativeObj, queryKeypoints_mat.nativeObj, matches_mat.nativeObj, maxDistance); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } // // C++: void javaGenericDescriptorMatcher::read(string fileName) // /** * <p>Reads a matcher object from a file node.</p> * * @param fileName a fileName * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-read">org.opencv.features2d.GenericDescriptorMatcher.read</a> */ public void read(String fileName) { read_0(nativeObj, fileName); return; } // // C++: void javaGenericDescriptorMatcher::train() // /** * <p>Trains descriptor matcher</p> * * <p>Prepares descriptor matcher, for example, creates a tree-based structure, to * extract descriptors or to optimize descriptors matching.</p> * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-train">org.opencv.features2d.GenericDescriptorMatcher.train</a> */ public void train() { train_0(nativeObj); return; } // // C++: void javaGenericDescriptorMatcher::write(string fileName) // /** * <p>Writes a match object to a file storage.</p> * * @param fileName a fileName * * @see <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_generic_descriptor_matchers.html#genericdescriptormatcher-write">org.opencv.features2d.GenericDescriptorMatcher.write</a> */ public void write(String fileName) { write_0(nativeObj, fileName); return; } @Override protected void finalize() throws Throwable { delete(nativeObj); } // C++: void javaGenericDescriptorMatcher::add(vector_Mat images, vector_vector_KeyPoint keypoints) private static native void add_0(long nativeObj, long images_mat_nativeObj, long keypoints_mat_nativeObj); // C++: void javaGenericDescriptorMatcher::classify(Mat queryImage, vector_KeyPoint& queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints) private static native void classify_0(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj); // C++: void javaGenericDescriptorMatcher::classify(Mat queryImage, vector_KeyPoint& queryKeypoints) private static native void classify_1(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj); // C++: void javaGenericDescriptorMatcher::clear() private static native void clear_0(long nativeObj); // C++: javaGenericDescriptorMatcher* javaGenericDescriptorMatcher::jclone(bool emptyTrainData = false) private static native long clone_0(long nativeObj, boolean emptyTrainData); private static native long clone_1(long nativeObj); // C++: static javaGenericDescriptorMatcher* javaGenericDescriptorMatcher::create(int matcherType) private static native long create_0(int matcherType); // C++: bool javaGenericDescriptorMatcher::empty() private static native boolean empty_0(long nativeObj); // C++: vector_Mat javaGenericDescriptorMatcher::getTrainImages() private static native long getTrainImages_0(long nativeObj); // C++: vector_vector_KeyPoint javaGenericDescriptorMatcher::getTrainKeypoints() private static native long getTrainKeypoints_0(long nativeObj); // C++: bool javaGenericDescriptorMatcher::isMaskSupported() private static native boolean isMaskSupported_0(long nativeObj); // C++: void javaGenericDescriptorMatcher::knnMatch(Mat queryImage, vector_KeyPoint queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints, vector_vector_DMatch& matches, int k, Mat mask = Mat(), bool compactResult = false) private static native void knnMatch_0(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj, long matches_mat_nativeObj, int k, long mask_nativeObj, boolean compactResult); private static native void knnMatch_1(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj, long matches_mat_nativeObj, int k); // C++: void javaGenericDescriptorMatcher::knnMatch(Mat queryImage, vector_KeyPoint queryKeypoints, vector_vector_DMatch& matches, int k, vector_Mat masks = vector<Mat>(), bool compactResult = false) private static native void knnMatch_2(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long matches_mat_nativeObj, int k, long masks_mat_nativeObj, boolean compactResult); private static native void knnMatch_3(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long matches_mat_nativeObj, int k); // C++: void javaGenericDescriptorMatcher::match(Mat queryImage, vector_KeyPoint queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints, vector_DMatch& matches, Mat mask = Mat()) private static native void match_0(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj, long matches_mat_nativeObj, long mask_nativeObj); private static native void match_1(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj, long matches_mat_nativeObj); // C++: void javaGenericDescriptorMatcher::match(Mat queryImage, vector_KeyPoint queryKeypoints, vector_DMatch& matches, vector_Mat masks = vector<Mat>()) private static native void match_2(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long matches_mat_nativeObj, long masks_mat_nativeObj); private static native void match_3(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long matches_mat_nativeObj); // C++: void javaGenericDescriptorMatcher::radiusMatch(Mat queryImage, vector_KeyPoint queryKeypoints, Mat trainImage, vector_KeyPoint trainKeypoints, vector_vector_DMatch& matches, float maxDistance, Mat mask = Mat(), bool compactResult = false) private static native void radiusMatch_0(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj, long matches_mat_nativeObj, float maxDistance, long mask_nativeObj, boolean compactResult); private static native void radiusMatch_1(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long trainImage_nativeObj, long trainKeypoints_mat_nativeObj, long matches_mat_nativeObj, float maxDistance); // C++: void javaGenericDescriptorMatcher::radiusMatch(Mat queryImage, vector_KeyPoint queryKeypoints, vector_vector_DMatch& matches, float maxDistance, vector_Mat masks = vector<Mat>(), bool compactResult = false) private static native void radiusMatch_2(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long matches_mat_nativeObj, float maxDistance, long masks_mat_nativeObj, boolean compactResult); private static native void radiusMatch_3(long nativeObj, long queryImage_nativeObj, long queryKeypoints_mat_nativeObj, long matches_mat_nativeObj, float maxDistance); // C++: void javaGenericDescriptorMatcher::read(string fileName) private static native void read_0(long nativeObj, String fileName); // C++: void javaGenericDescriptorMatcher::train() private static native void train_0(long nativeObj); // C++: void javaGenericDescriptorMatcher::write(string fileName) private static native void write_0(long nativeObj, String fileName); // native support for java finalize() private static native void delete(long nativeObj); }