001//
002// This file is auto-generated. Please don't modify it!
003//
004package org.opencv.features2d;
005
006import java.util.ArrayList;
007import java.util.List;
008import org.opencv.core.Mat;
009import org.opencv.core.MatOfByte;
010import org.opencv.core.MatOfDMatch;
011import org.opencv.core.MatOfKeyPoint;
012import org.opencv.core.Scalar;
013import org.opencv.utils.Converters;
014
015// C++: class Features2d
016
017public class Features2d {
018
019    // C++: enum DrawMatchesFlags (cv.DrawMatchesFlags)
020    public static final int
021            DrawMatchesFlags_DEFAULT = 0,
022            DrawMatchesFlags_DRAW_OVER_OUTIMG = 1,
023            DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS = 2,
024            DrawMatchesFlags_DRAW_RICH_KEYPOINTS = 4;
025
026
027    //
028    // C++:  void cv::drawKeypoints(Mat image, vector_KeyPoint keypoints, Mat& outImage, Scalar color = Scalar::all(-1), DrawMatchesFlags flags = DrawMatchesFlags::DEFAULT)
029    //
030
031    /**
032     * Draws keypoints.
033     *
034     * @param image Source image.
035     * @param keypoints Keypoints from the source image.
036     * @param outImage Output image. Its content depends on the flags value defining what is drawn in the
037     * output image. See possible flags bit values below.
038     * @param color Color of keypoints.
039     * @param flags Flags setting drawing features. Possible flags bit values are defined by
040     * DrawMatchesFlags. See details above in drawMatches .
041     *
042     * <b>Note:</b>
043     * For Python API, flags are modified as cv.DRAW_MATCHES_FLAGS_DEFAULT,
044     * cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS, cv.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG,
045     * cv.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS
046     */
047    public static void drawKeypoints(Mat image, MatOfKeyPoint keypoints, Mat outImage, Scalar color, int flags) {
048        Mat keypoints_mat = keypoints;
049        drawKeypoints_0(image.nativeObj, keypoints_mat.nativeObj, outImage.nativeObj, color.val[0], color.val[1], color.val[2], color.val[3], flags);
050    }
051
052    /**
053     * Draws keypoints.
054     *
055     * @param image Source image.
056     * @param keypoints Keypoints from the source image.
057     * @param outImage Output image. Its content depends on the flags value defining what is drawn in the
058     * output image. See possible flags bit values below.
059     * @param color Color of keypoints.
060     * DrawMatchesFlags. See details above in drawMatches .
061     *
062     * <b>Note:</b>
063     * For Python API, flags are modified as cv.DRAW_MATCHES_FLAGS_DEFAULT,
064     * cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS, cv.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG,
065     * cv.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS
066     */
067    public static void drawKeypoints(Mat image, MatOfKeyPoint keypoints, Mat outImage, Scalar color) {
068        Mat keypoints_mat = keypoints;
069        drawKeypoints_1(image.nativeObj, keypoints_mat.nativeObj, outImage.nativeObj, color.val[0], color.val[1], color.val[2], color.val[3]);
070    }
071
072    /**
073     * Draws keypoints.
074     *
075     * @param image Source image.
076     * @param keypoints Keypoints from the source image.
077     * @param outImage Output image. Its content depends on the flags value defining what is drawn in the
078     * output image. See possible flags bit values below.
079     * DrawMatchesFlags. See details above in drawMatches .
080     *
081     * <b>Note:</b>
082     * For Python API, flags are modified as cv.DRAW_MATCHES_FLAGS_DEFAULT,
083     * cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS, cv.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG,
084     * cv.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS
085     */
086    public static void drawKeypoints(Mat image, MatOfKeyPoint keypoints, Mat outImage) {
087        Mat keypoints_mat = keypoints;
088        drawKeypoints_2(image.nativeObj, keypoints_mat.nativeObj, outImage.nativeObj);
089    }
090
091
092    //
093    // C++:  void cv::drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_DMatch matches1to2, Mat& outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_char matchesMask = std::vector<char>(), DrawMatchesFlags flags = DrawMatchesFlags::DEFAULT)
094    //
095
096    /**
097     * Draws the found matches of keypoints from two images.
098     *
099     * @param img1 First source image.
100     * @param keypoints1 Keypoints from the first source image.
101     * @param img2 Second source image.
102     * @param keypoints2 Keypoints from the second source image.
103     * @param matches1to2 Matches from the first image to the second one, which means that keypoints1[i]
104     * has a corresponding point in keypoints2[matches[i]] .
105     * @param outImg Output image. Its content depends on the flags value defining what is drawn in the
106     * output image. See possible flags bit values below.
107     * @param matchColor Color of matches (lines and connected keypoints). If matchColor==Scalar::all(-1)
108     * , the color is generated randomly.
109     * @param singlePointColor Color of single keypoints (circles), which means that keypoints do not
110     * have the matches. If singlePointColor==Scalar::all(-1) , the color is generated randomly.
111     * @param matchesMask Mask determining which matches are drawn. If the mask is empty, all matches are
112     * drawn.
113     * @param flags Flags setting drawing features. Possible flags bit values are defined by
114     * DrawMatchesFlags.
115     *
116     * This function draws matches of keypoints from two images in the output image. Match is a line
117     * connecting two keypoints (circles). See cv::DrawMatchesFlags.
118     */
119    public static void drawMatches(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, MatOfDMatch matches1to2, Mat outImg, Scalar matchColor, Scalar singlePointColor, MatOfByte matchesMask, int flags) {
120        Mat keypoints1_mat = keypoints1;
121        Mat keypoints2_mat = keypoints2;
122        Mat matches1to2_mat = matches1to2;
123        Mat matchesMask_mat = matchesMask;
124        drawMatches_0(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj, matchColor.val[0], matchColor.val[1], matchColor.val[2], matchColor.val[3], singlePointColor.val[0], singlePointColor.val[1], singlePointColor.val[2], singlePointColor.val[3], matchesMask_mat.nativeObj, flags);
125    }
126
127    /**
128     * Draws the found matches of keypoints from two images.
129     *
130     * @param img1 First source image.
131     * @param keypoints1 Keypoints from the first source image.
132     * @param img2 Second source image.
133     * @param keypoints2 Keypoints from the second source image.
134     * @param matches1to2 Matches from the first image to the second one, which means that keypoints1[i]
135     * has a corresponding point in keypoints2[matches[i]] .
136     * @param outImg Output image. Its content depends on the flags value defining what is drawn in the
137     * output image. See possible flags bit values below.
138     * @param matchColor Color of matches (lines and connected keypoints). If matchColor==Scalar::all(-1)
139     * , the color is generated randomly.
140     * @param singlePointColor Color of single keypoints (circles), which means that keypoints do not
141     * have the matches. If singlePointColor==Scalar::all(-1) , the color is generated randomly.
142     * @param matchesMask Mask determining which matches are drawn. If the mask is empty, all matches are
143     * drawn.
144     * DrawMatchesFlags.
145     *
146     * This function draws matches of keypoints from two images in the output image. Match is a line
147     * connecting two keypoints (circles). See cv::DrawMatchesFlags.
148     */
149    public static void drawMatches(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, MatOfDMatch matches1to2, Mat outImg, Scalar matchColor, Scalar singlePointColor, MatOfByte matchesMask) {
150        Mat keypoints1_mat = keypoints1;
151        Mat keypoints2_mat = keypoints2;
152        Mat matches1to2_mat = matches1to2;
153        Mat matchesMask_mat = matchesMask;
154        drawMatches_1(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj, matchColor.val[0], matchColor.val[1], matchColor.val[2], matchColor.val[3], singlePointColor.val[0], singlePointColor.val[1], singlePointColor.val[2], singlePointColor.val[3], matchesMask_mat.nativeObj);
155    }
156
157    /**
158     * Draws the found matches of keypoints from two images.
159     *
160     * @param img1 First source image.
161     * @param keypoints1 Keypoints from the first source image.
162     * @param img2 Second source image.
163     * @param keypoints2 Keypoints from the second source image.
164     * @param matches1to2 Matches from the first image to the second one, which means that keypoints1[i]
165     * has a corresponding point in keypoints2[matches[i]] .
166     * @param outImg Output image. Its content depends on the flags value defining what is drawn in the
167     * output image. See possible flags bit values below.
168     * @param matchColor Color of matches (lines and connected keypoints). If matchColor==Scalar::all(-1)
169     * , the color is generated randomly.
170     * @param singlePointColor Color of single keypoints (circles), which means that keypoints do not
171     * have the matches. If singlePointColor==Scalar::all(-1) , the color is generated randomly.
172     * drawn.
173     * DrawMatchesFlags.
174     *
175     * This function draws matches of keypoints from two images in the output image. Match is a line
176     * connecting two keypoints (circles). See cv::DrawMatchesFlags.
177     */
178    public static void drawMatches(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, MatOfDMatch matches1to2, Mat outImg, Scalar matchColor, Scalar singlePointColor) {
179        Mat keypoints1_mat = keypoints1;
180        Mat keypoints2_mat = keypoints2;
181        Mat matches1to2_mat = matches1to2;
182        drawMatches_2(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj, matchColor.val[0], matchColor.val[1], matchColor.val[2], matchColor.val[3], singlePointColor.val[0], singlePointColor.val[1], singlePointColor.val[2], singlePointColor.val[3]);
183    }
184
185    /**
186     * Draws the found matches of keypoints from two images.
187     *
188     * @param img1 First source image.
189     * @param keypoints1 Keypoints from the first source image.
190     * @param img2 Second source image.
191     * @param keypoints2 Keypoints from the second source image.
192     * @param matches1to2 Matches from the first image to the second one, which means that keypoints1[i]
193     * has a corresponding point in keypoints2[matches[i]] .
194     * @param outImg Output image. Its content depends on the flags value defining what is drawn in the
195     * output image. See possible flags bit values below.
196     * @param matchColor Color of matches (lines and connected keypoints). If matchColor==Scalar::all(-1)
197     * , the color is generated randomly.
198     * have the matches. If singlePointColor==Scalar::all(-1) , the color is generated randomly.
199     * drawn.
200     * DrawMatchesFlags.
201     *
202     * This function draws matches of keypoints from two images in the output image. Match is a line
203     * connecting two keypoints (circles). See cv::DrawMatchesFlags.
204     */
205    public static void drawMatches(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, MatOfDMatch matches1to2, Mat outImg, Scalar matchColor) {
206        Mat keypoints1_mat = keypoints1;
207        Mat keypoints2_mat = keypoints2;
208        Mat matches1to2_mat = matches1to2;
209        drawMatches_3(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj, matchColor.val[0], matchColor.val[1], matchColor.val[2], matchColor.val[3]);
210    }
211
212    /**
213     * Draws the found matches of keypoints from two images.
214     *
215     * @param img1 First source image.
216     * @param keypoints1 Keypoints from the first source image.
217     * @param img2 Second source image.
218     * @param keypoints2 Keypoints from the second source image.
219     * @param matches1to2 Matches from the first image to the second one, which means that keypoints1[i]
220     * has a corresponding point in keypoints2[matches[i]] .
221     * @param outImg Output image. Its content depends on the flags value defining what is drawn in the
222     * output image. See possible flags bit values below.
223     * , the color is generated randomly.
224     * have the matches. If singlePointColor==Scalar::all(-1) , the color is generated randomly.
225     * drawn.
226     * DrawMatchesFlags.
227     *
228     * This function draws matches of keypoints from two images in the output image. Match is a line
229     * connecting two keypoints (circles). See cv::DrawMatchesFlags.
230     */
231    public static void drawMatches(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, MatOfDMatch matches1to2, Mat outImg) {
232        Mat keypoints1_mat = keypoints1;
233        Mat keypoints2_mat = keypoints2;
234        Mat matches1to2_mat = matches1to2;
235        drawMatches_4(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj);
236    }
237
238
239    //
240    // C++:  void cv::drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_vector_DMatch matches1to2, Mat& outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_vector_char matchesMask = std::vector<std::vector<char> >(), DrawMatchesFlags flags = DrawMatchesFlags::DEFAULT)
241    //
242
243    public static void drawMatchesKnn(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, List<MatOfDMatch> matches1to2, Mat outImg, Scalar matchColor, Scalar singlePointColor, List<MatOfByte> matchesMask, int flags) {
244        Mat keypoints1_mat = keypoints1;
245        Mat keypoints2_mat = keypoints2;
246        List<Mat> matches1to2_tmplm = new ArrayList<Mat>((matches1to2 != null) ? matches1to2.size() : 0);
247        Mat matches1to2_mat = Converters.vector_vector_DMatch_to_Mat(matches1to2, matches1to2_tmplm);
248        List<Mat> matchesMask_tmplm = new ArrayList<Mat>((matchesMask != null) ? matchesMask.size() : 0);
249        Mat matchesMask_mat = Converters.vector_vector_char_to_Mat(matchesMask, matchesMask_tmplm);
250        drawMatchesKnn_0(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj, matchColor.val[0], matchColor.val[1], matchColor.val[2], matchColor.val[3], singlePointColor.val[0], singlePointColor.val[1], singlePointColor.val[2], singlePointColor.val[3], matchesMask_mat.nativeObj, flags);
251    }
252
253    public static void drawMatchesKnn(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, List<MatOfDMatch> matches1to2, Mat outImg, Scalar matchColor, Scalar singlePointColor, List<MatOfByte> matchesMask) {
254        Mat keypoints1_mat = keypoints1;
255        Mat keypoints2_mat = keypoints2;
256        List<Mat> matches1to2_tmplm = new ArrayList<Mat>((matches1to2 != null) ? matches1to2.size() : 0);
257        Mat matches1to2_mat = Converters.vector_vector_DMatch_to_Mat(matches1to2, matches1to2_tmplm);
258        List<Mat> matchesMask_tmplm = new ArrayList<Mat>((matchesMask != null) ? matchesMask.size() : 0);
259        Mat matchesMask_mat = Converters.vector_vector_char_to_Mat(matchesMask, matchesMask_tmplm);
260        drawMatchesKnn_1(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj, matchColor.val[0], matchColor.val[1], matchColor.val[2], matchColor.val[3], singlePointColor.val[0], singlePointColor.val[1], singlePointColor.val[2], singlePointColor.val[3], matchesMask_mat.nativeObj);
261    }
262
263    public static void drawMatchesKnn(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, List<MatOfDMatch> matches1to2, Mat outImg, Scalar matchColor, Scalar singlePointColor) {
264        Mat keypoints1_mat = keypoints1;
265        Mat keypoints2_mat = keypoints2;
266        List<Mat> matches1to2_tmplm = new ArrayList<Mat>((matches1to2 != null) ? matches1to2.size() : 0);
267        Mat matches1to2_mat = Converters.vector_vector_DMatch_to_Mat(matches1to2, matches1to2_tmplm);
268        drawMatchesKnn_2(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj, matchColor.val[0], matchColor.val[1], matchColor.val[2], matchColor.val[3], singlePointColor.val[0], singlePointColor.val[1], singlePointColor.val[2], singlePointColor.val[3]);
269    }
270
271    public static void drawMatchesKnn(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, List<MatOfDMatch> matches1to2, Mat outImg, Scalar matchColor) {
272        Mat keypoints1_mat = keypoints1;
273        Mat keypoints2_mat = keypoints2;
274        List<Mat> matches1to2_tmplm = new ArrayList<Mat>((matches1to2 != null) ? matches1to2.size() : 0);
275        Mat matches1to2_mat = Converters.vector_vector_DMatch_to_Mat(matches1to2, matches1to2_tmplm);
276        drawMatchesKnn_3(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj, matchColor.val[0], matchColor.val[1], matchColor.val[2], matchColor.val[3]);
277    }
278
279    public static void drawMatchesKnn(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, List<MatOfDMatch> matches1to2, Mat outImg) {
280        Mat keypoints1_mat = keypoints1;
281        Mat keypoints2_mat = keypoints2;
282        List<Mat> matches1to2_tmplm = new ArrayList<Mat>((matches1to2 != null) ? matches1to2.size() : 0);
283        Mat matches1to2_mat = Converters.vector_vector_DMatch_to_Mat(matches1to2, matches1to2_tmplm);
284        drawMatchesKnn_4(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj);
285    }
286
287
288
289
290    // C++:  void cv::drawKeypoints(Mat image, vector_KeyPoint keypoints, Mat& outImage, Scalar color = Scalar::all(-1), DrawMatchesFlags flags = DrawMatchesFlags::DEFAULT)
291    private static native void drawKeypoints_0(long image_nativeObj, long keypoints_mat_nativeObj, long outImage_nativeObj, double color_val0, double color_val1, double color_val2, double color_val3, int flags);
292    private static native void drawKeypoints_1(long image_nativeObj, long keypoints_mat_nativeObj, long outImage_nativeObj, double color_val0, double color_val1, double color_val2, double color_val3);
293    private static native void drawKeypoints_2(long image_nativeObj, long keypoints_mat_nativeObj, long outImage_nativeObj);
294
295    // C++:  void cv::drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_DMatch matches1to2, Mat& outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_char matchesMask = std::vector<char>(), DrawMatchesFlags flags = DrawMatchesFlags::DEFAULT)
296    private static native void drawMatches_0(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj, double matchColor_val0, double matchColor_val1, double matchColor_val2, double matchColor_val3, double singlePointColor_val0, double singlePointColor_val1, double singlePointColor_val2, double singlePointColor_val3, long matchesMask_mat_nativeObj, int flags);
297    private static native void drawMatches_1(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj, double matchColor_val0, double matchColor_val1, double matchColor_val2, double matchColor_val3, double singlePointColor_val0, double singlePointColor_val1, double singlePointColor_val2, double singlePointColor_val3, long matchesMask_mat_nativeObj);
298    private static native void drawMatches_2(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj, double matchColor_val0, double matchColor_val1, double matchColor_val2, double matchColor_val3, double singlePointColor_val0, double singlePointColor_val1, double singlePointColor_val2, double singlePointColor_val3);
299    private static native void drawMatches_3(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj, double matchColor_val0, double matchColor_val1, double matchColor_val2, double matchColor_val3);
300    private static native void drawMatches_4(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj);
301
302    // C++:  void cv::drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_vector_DMatch matches1to2, Mat& outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_vector_char matchesMask = std::vector<std::vector<char> >(), DrawMatchesFlags flags = DrawMatchesFlags::DEFAULT)
303    private static native void drawMatchesKnn_0(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj, double matchColor_val0, double matchColor_val1, double matchColor_val2, double matchColor_val3, double singlePointColor_val0, double singlePointColor_val1, double singlePointColor_val2, double singlePointColor_val3, long matchesMask_mat_nativeObj, int flags);
304    private static native void drawMatchesKnn_1(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj, double matchColor_val0, double matchColor_val1, double matchColor_val2, double matchColor_val3, double singlePointColor_val0, double singlePointColor_val1, double singlePointColor_val2, double singlePointColor_val3, long matchesMask_mat_nativeObj);
305    private static native void drawMatchesKnn_2(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj, double matchColor_val0, double matchColor_val1, double matchColor_val2, double matchColor_val3, double singlePointColor_val0, double singlePointColor_val1, double singlePointColor_val2, double singlePointColor_val3);
306    private static native void drawMatchesKnn_3(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj, double matchColor_val0, double matchColor_val1, double matchColor_val2, double matchColor_val3);
307    private static native void drawMatchesKnn_4(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj);
308
309}