1 #define LOG_TAG "org.opencv.core.Mat"
2 
3 #include <stdexcept>
4 #include <string>
5 
6 #include "common.h"
7 #include "opencv2/core.hpp"
8 
9 using namespace cv;
10 
11 /// throw java exception
throwJavaException(JNIEnv * env,const std::exception * e,const char * method)12 static void throwJavaException(JNIEnv *env, const std::exception *e, const char *method) {
13   std::string what = "unknown exception";
14   jclass je = 0;
15 
16   if(e) {
17     std::string exception_type = "std::exception";
18 
19     if(dynamic_cast<const cv::Exception*>(e)) {
20       exception_type = "cv::Exception";
21       je = env->FindClass("org/opencv/core/CvException");
22     }
23 
24     what = exception_type + ": " + e->what();
25   }
26 
27   if(!je) je = env->FindClass("java/lang/Exception");
28   env->ThrowNew(je, what.c_str());
29 
30   LOGE("%s caught %s", method, what.c_str());
31   (void)method;        // avoid "unused" warning
32 }
33 
34 extern "C" {
35 
36 
37 //
38 //   MatXXX::MatXXX()
39 //
40 
41 
42 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__
43   (JNIEnv*, jclass);
44 
Java_org_opencv_core_Mat_n_1Mat__(JNIEnv *,jclass)45 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__
46   (JNIEnv*, jclass)
47 {
48     LOGD("Mat::n_1Mat__()");
49     return (jlong) new cv::Mat();
50 }
51 
52 
53 
54 //
55 //   Mat::Mat(int rows, int cols, int type)
56 //
57 
58 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__III
59   (JNIEnv* env, jclass, jint rows, jint cols, jint type);
60 
Java_org_opencv_core_Mat_n_1Mat__III(JNIEnv * env,jclass,jint rows,jint cols,jint type)61 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__III
62   (JNIEnv* env, jclass, jint rows, jint cols, jint type)
63 {
64     static const char method_name[] = "Mat::n_1Mat__III()";
65     try {
66         LOGD("%s", method_name);
67         return (jlong) new Mat( rows, cols, type );
68     } catch(const std::exception &e) {
69         throwJavaException(env, &e, method_name);
70     } catch (...) {
71         throwJavaException(env, 0, method_name);
72     }
73 
74     return 0;
75 }
76 
77 
78 
79 //
80 //   Mat::Mat(Size size, int type)
81 //
82 
83 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__DDI
84   (JNIEnv* env, jclass, jdouble size_width, jdouble size_height, jint type);
85 
Java_org_opencv_core_Mat_n_1Mat__DDI(JNIEnv * env,jclass,jdouble size_width,jdouble size_height,jint type)86 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__DDI
87   (JNIEnv* env, jclass, jdouble size_width, jdouble size_height, jint type)
88 {
89     static const char method_name[] = "Mat::n_1Mat__DDI()";
90     try {
91         LOGD("%s", method_name);
92         Size size((int)size_width, (int)size_height);
93         return (jlong) new Mat( size, type );
94     } catch(const std::exception &e) {
95         throwJavaException(env, &e, method_name);
96     } catch (...) {
97         throwJavaException(env, 0, method_name);
98     }
99 
100     return 0;
101 }
102 
103 
104 
105 //
106 //   Mat::Mat(int rows, int cols, int type, Scalar s)
107 //
108 
109 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__IIIDDDD
110   (JNIEnv* env, jclass, jint rows, jint cols, jint type, jdouble s_val0, jdouble s_val1, jdouble s_val2, jdouble s_val3);
111 
112 
Java_org_opencv_core_Mat_n_1Mat__IIIDDDD(JNIEnv * env,jclass,jint rows,jint cols,jint type,jdouble s_val0,jdouble s_val1,jdouble s_val2,jdouble s_val3)113 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__IIIDDDD
114   (JNIEnv* env, jclass, jint rows, jint cols, jint type, jdouble s_val0, jdouble s_val1, jdouble s_val2, jdouble s_val3)
115 {
116     static const char method_name[] = "Mat::n_1Mat__IIIDDDD()";
117     try {
118         LOGD("%s", method_name);
119         Scalar s(s_val0, s_val1, s_val2, s_val3);
120         return (jlong) new Mat( rows, cols, type, s );
121     } catch(const std::exception &e) {
122         throwJavaException(env, &e, method_name);
123     } catch (...) {
124         throwJavaException(env, 0, method_name);
125     }
126 
127     return 0;
128 }
129 
130 
131 
132 //
133 //   Mat::Mat(Size size, int type, Scalar s)
134 //
135 
136 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__DDIDDDD
137   (JNIEnv* env, jclass, jdouble size_width, jdouble size_height, jint type, jdouble s_val0, jdouble s_val1, jdouble s_val2, jdouble s_val3);
138 
Java_org_opencv_core_Mat_n_1Mat__DDIDDDD(JNIEnv * env,jclass,jdouble size_width,jdouble size_height,jint type,jdouble s_val0,jdouble s_val1,jdouble s_val2,jdouble s_val3)139 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__DDIDDDD
140   (JNIEnv* env, jclass, jdouble size_width, jdouble size_height, jint type, jdouble s_val0, jdouble s_val1, jdouble s_val2, jdouble s_val3)
141 {
142     static const char method_name[] = "Mat::n_1Mat__DDIDDDD()";
143     try {
144         LOGD("%s", method_name);
145         Size size((int)size_width, (int)size_height);
146         Scalar s(s_val0, s_val1, s_val2, s_val3);
147         return (jlong) new Mat( size, type, s );
148     } catch(const std::exception &e) {
149         throwJavaException(env, &e, method_name);
150     } catch (...) {
151         throwJavaException(env, 0, method_name);
152     }
153 
154     return 0;
155 }
156 
157 
158 
159 //
160 //   Mat::Mat(Mat m, Range rowRange, Range colRange = Range::all())
161 //
162 
163 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__JIIII
164   (JNIEnv* env, jclass, jlong m_nativeObj, jint rowRange_start, jint rowRange_end, jint colRange_start, jint colRange_end);
165 
Java_org_opencv_core_Mat_n_1Mat__JIIII(JNIEnv * env,jclass,jlong m_nativeObj,jint rowRange_start,jint rowRange_end,jint colRange_start,jint colRange_end)166 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__JIIII
167   (JNIEnv* env, jclass, jlong m_nativeObj, jint rowRange_start, jint rowRange_end, jint colRange_start, jint colRange_end)
168 {
169     static const char method_name[] = "Mat::n_1Mat__JIIII()";
170     try {
171         LOGD("%s", method_name);
172         Range rowRange(rowRange_start, rowRange_end);
173         Range colRange(colRange_start, colRange_end);
174         return (jlong) new Mat( (*(Mat*)m_nativeObj), rowRange, colRange );
175     } catch(const std::exception &e) {
176         throwJavaException(env, &e, method_name);
177     } catch (...) {
178         throwJavaException(env, 0, method_name);
179     }
180 
181     return 0;
182 }
183 
184 
185 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__JII
186   (JNIEnv* env, jclass, jlong m_nativeObj, jint rowRange_start, jint rowRange_end);
187 
188 
Java_org_opencv_core_Mat_n_1Mat__JII(JNIEnv * env,jclass,jlong m_nativeObj,jint rowRange_start,jint rowRange_end)189 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1Mat__JII
190   (JNIEnv* env, jclass, jlong m_nativeObj, jint rowRange_start, jint rowRange_end)
191 {
192     static const char method_name[] = "Mat::n_1Mat__JII()";
193     try {
194         LOGD("%s", method_name);
195         Range rowRange(rowRange_start, rowRange_end);
196         return (jlong) new Mat( (*(Mat*)m_nativeObj), rowRange );
197     } catch(const std::exception &e) {
198         throwJavaException(env, &e, method_name);
199     } catch (...) {
200         throwJavaException(env, 0, method_name);
201     }
202 
203     return 0;
204 }
205 
206 
207 //
208 //  Mat Mat::adjustROI(int dtop, int dbottom, int dleft, int dright)
209 //
210 
211 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1adjustROI
212   (JNIEnv* env, jclass, jlong self, jint dtop, jint dbottom, jint dleft, jint dright);
213 
Java_org_opencv_core_Mat_n_1adjustROI(JNIEnv * env,jclass,jlong self,jint dtop,jint dbottom,jint dleft,jint dright)214 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1adjustROI
215   (JNIEnv* env, jclass, jlong self, jint dtop, jint dbottom, jint dleft, jint dright)
216 {
217     static const char method_name[] = "Mat::n_1adjustROI()";
218     try {
219         LOGD("%s", method_name);
220         Mat* me = (Mat*) self; //TODO: check for NULL
221         Mat _retval_ = me->adjustROI( dtop, dbottom, dleft, dright );
222         return (jlong) new Mat(_retval_);
223     } catch(const std::exception &e) {
224         throwJavaException(env, &e, method_name);
225     } catch (...) {
226         throwJavaException(env, 0, method_name);
227     }
228 
229     return 0;
230 }
231 
232 
233 
234 //
235 //  void Mat::assignTo(Mat m, int type = -1)
236 //
237 
238 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1assignTo__JJI
239   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj, jint type);
240 
Java_org_opencv_core_Mat_n_1assignTo__JJI(JNIEnv * env,jclass,jlong self,jlong m_nativeObj,jint type)241 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1assignTo__JJI
242   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj, jint type)
243 {
244     static const char method_name[] = "Mat::n_1assignTo__JJI()";
245     try {
246         LOGD("%s", method_name);
247         Mat* me = (Mat*) self; //TODO: check for NULL
248         me->assignTo( (*(Mat*)m_nativeObj), type );
249     } catch(const std::exception &e) {
250         throwJavaException(env, &e, method_name);
251     } catch (...) {
252         throwJavaException(env, 0, method_name);
253     }
254 }
255 
256 
257 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1assignTo__JJ
258   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj);
259 
Java_org_opencv_core_Mat_n_1assignTo__JJ(JNIEnv * env,jclass,jlong self,jlong m_nativeObj)260 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1assignTo__JJ
261   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj)
262 {
263     static const char method_name[] = "Mat::n_1assignTo__JJ()";
264     try {
265         LOGD("%s", method_name);
266         Mat* me = (Mat*) self; //TODO: check for NULL
267         me->assignTo( (*(Mat*)m_nativeObj) );
268     } catch(const std::exception &e) {
269         throwJavaException(env, &e, method_name);
270     } catch (...) {
271         throwJavaException(env, 0, method_name);
272     }
273 }
274 
275 
276 
277 //
278 //  int Mat::channels()
279 //
280 
281 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1channels
282   (JNIEnv* env, jclass, jlong self);
283 
Java_org_opencv_core_Mat_n_1channels(JNIEnv * env,jclass,jlong self)284 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1channels
285   (JNIEnv* env, jclass, jlong self)
286 {
287     static const char method_name[] = "Mat::n_1channels()";
288     try {
289         LOGD("%s", method_name);
290         Mat* me = (Mat*) self; //TODO: check for NULL
291         return me->channels(  );
292     } catch(const std::exception &e) {
293         throwJavaException(env, &e, method_name);
294     } catch (...) {
295         throwJavaException(env, 0, method_name);
296     }
297 
298     return 0;
299 }
300 
301 
302 
303 //
304 //  int Mat::checkVector(int elemChannels, int depth = -1, bool requireContinuous = true)
305 //
306 
307 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1checkVector__JIIZ
308   (JNIEnv* env, jclass, jlong self, jint elemChannels, jint depth, jboolean requireContinuous);
309 
Java_org_opencv_core_Mat_n_1checkVector__JIIZ(JNIEnv * env,jclass,jlong self,jint elemChannels,jint depth,jboolean requireContinuous)310 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1checkVector__JIIZ
311   (JNIEnv* env, jclass, jlong self, jint elemChannels, jint depth, jboolean requireContinuous)
312 {
313     static const char method_name[] = "Mat::n_1checkVector__JIIZ()";
314     try {
315         LOGD("%s", method_name);
316         Mat* me = (Mat*) self; //TODO: check for NULL
317         return me->checkVector( elemChannels, depth, requireContinuous );
318     } catch(const std::exception &e) {
319         throwJavaException(env, &e, method_name);
320     } catch (...) {
321         throwJavaException(env, 0, method_name);
322     }
323 
324     return 0;
325 }
326 
327 
328 
329 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1checkVector__JII
330   (JNIEnv* env, jclass, jlong self, jint elemChannels, jint depth);
331 
Java_org_opencv_core_Mat_n_1checkVector__JII(JNIEnv * env,jclass,jlong self,jint elemChannels,jint depth)332 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1checkVector__JII
333   (JNIEnv* env, jclass, jlong self, jint elemChannels, jint depth)
334 {
335     static const char method_name[] = "Mat::n_1checkVector__JII()";
336     try {
337         LOGD("%s", method_name);
338         Mat* me = (Mat*) self; //TODO: check for NULL
339         return me->checkVector( elemChannels, depth );
340     } catch(const std::exception &e) {
341         throwJavaException(env, &e, method_name);
342     } catch (...) {
343         throwJavaException(env, 0, method_name);
344     }
345 
346     return 0;
347 }
348 
349 
350 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1checkVector__JI
351   (JNIEnv* env, jclass, jlong self, jint elemChannels);
352 
353 
Java_org_opencv_core_Mat_n_1checkVector__JI(JNIEnv * env,jclass,jlong self,jint elemChannels)354 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1checkVector__JI
355   (JNIEnv* env, jclass, jlong self, jint elemChannels)
356 {
357     static const char method_name[] = "Mat::n_1checkVector__JI()";
358     try {
359         LOGD("%s", method_name);
360         Mat* me = (Mat*) self; //TODO: check for NULL
361         return me->checkVector( elemChannels );
362     } catch(const std::exception &e) {
363         throwJavaException(env, &e, method_name);
364     } catch (...) {
365         throwJavaException(env, 0, method_name);
366     }
367 
368     return 0;
369 }
370 
371 
372 
373 //
374 //  Mat Mat::clone()
375 //
376 
377 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1clone
378   (JNIEnv* env, jclass, jlong self);
379 
380 
Java_org_opencv_core_Mat_n_1clone(JNIEnv * env,jclass,jlong self)381 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1clone
382   (JNIEnv* env, jclass, jlong self)
383 {
384     static const char method_name[] = "Mat::n_1clone()";
385     try {
386         LOGD("%s", method_name);
387         Mat* me = (Mat*) self; //TODO: check for NULL
388         Mat _retval_ = me->clone(  );
389         return (jlong) new Mat(_retval_);
390     } catch(const std::exception &e) {
391         throwJavaException(env, &e, method_name);
392     } catch (...) {
393         throwJavaException(env, 0, method_name);
394     }
395 
396     return 0;
397 }
398 
399 
400 
401 //
402 //  Mat Mat::col(int x)
403 //
404 
405 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1col
406   (JNIEnv* env, jclass, jlong self, jint x);
407 
Java_org_opencv_core_Mat_n_1col(JNIEnv * env,jclass,jlong self,jint x)408 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1col
409   (JNIEnv* env, jclass, jlong self, jint x)
410 {
411     static const char method_name[] = "Mat::n_1col()";
412     try {
413         LOGD("%s", method_name);
414         Mat* me = (Mat*) self; //TODO: check for NULL
415         Mat _retval_ = me->col( x );
416         return (jlong) new Mat(_retval_);
417     } catch(const std::exception &e) {
418         throwJavaException(env, &e, method_name);
419     } catch (...) {
420         throwJavaException(env, 0, method_name);
421     }
422 
423     return 0;
424 }
425 
426 
427 
428 //
429 //  Mat Mat::colRange(int startcol, int endcol)
430 //
431 
432 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1colRange
433   (JNIEnv* env, jclass, jlong self, jint startcol, jint endcol);
434 
Java_org_opencv_core_Mat_n_1colRange(JNIEnv * env,jclass,jlong self,jint startcol,jint endcol)435 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1colRange
436   (JNIEnv* env, jclass, jlong self, jint startcol, jint endcol)
437 {
438     static const char method_name[] = "Mat::n_1colRange()";
439     try {
440         LOGD("%s", method_name);
441         Mat* me = (Mat*) self; //TODO: check for NULL
442         Mat _retval_ = me->colRange( startcol, endcol );
443         return (jlong) new Mat(_retval_);
444     } catch(const std::exception &e) {
445         throwJavaException(env, &e, method_name);
446     } catch (...) {
447         throwJavaException(env, 0, method_name);
448     }
449 
450     return 0;
451 }
452 
453 
454 
455 //
456 //  int Mat::dims()
457 //
458 
459 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1dims
460   (JNIEnv* env, jclass, jlong self);
461 
Java_org_opencv_core_Mat_n_1dims(JNIEnv * env,jclass,jlong self)462 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1dims
463   (JNIEnv* env, jclass, jlong self)
464 {
465     static const char method_name[] = "Mat::n_1dims()";
466     try {
467         LOGD("%s", method_name);
468         Mat* me = (Mat*) self; //TODO: check for NULL
469         return me->dims;
470     } catch(const cv::Exception& e) {
471         throwJavaException(env, &e, method_name);
472     } catch (...) {
473         throwJavaException(env, 0, method_name);
474     }
475 
476     return 0;
477 }
478 
479 
480 
481 //
482 //  int Mat::cols()
483 //
484 
485 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1cols
486   (JNIEnv* env, jclass, jlong self);
487 
Java_org_opencv_core_Mat_n_1cols(JNIEnv * env,jclass,jlong self)488 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1cols
489   (JNIEnv* env, jclass, jlong self)
490 {
491     static const char method_name[] = "Mat::n_1cols()";
492     try {
493         LOGD("%s", method_name);
494         Mat* me = (Mat*) self; //TODO: check for NULL
495         return me->cols;
496     } catch(const std::exception &e) {
497         throwJavaException(env, &e, method_name);
498     } catch (...) {
499         throwJavaException(env, 0, method_name);
500     }
501 
502     return 0;
503 }
504 
505 
506 
507 //
508 //  void Mat::convertTo(Mat& m, int rtype, double alpha = 1, double beta = 0)
509 //
510 
511 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1convertTo__JJIDD
512   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj, jint rtype, jdouble alpha, jdouble beta);
513 
Java_org_opencv_core_Mat_n_1convertTo__JJIDD(JNIEnv * env,jclass,jlong self,jlong m_nativeObj,jint rtype,jdouble alpha,jdouble beta)514 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1convertTo__JJIDD
515   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj, jint rtype, jdouble alpha, jdouble beta)
516 {
517     static const char method_name[] = "Mat::n_1convertTo__JJIDD()";
518     try {
519         LOGD("%s", method_name);
520         Mat* me = (Mat*) self; //TODO: check for NULL
521         Mat& m = *((Mat*)m_nativeObj);
522         me->convertTo( m, rtype, alpha, beta );
523     } catch(const std::exception &e) {
524         throwJavaException(env, &e, method_name);
525     } catch (...) {
526         throwJavaException(env, 0, method_name);
527     }
528 }
529 
530 
531 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1convertTo__JJID
532   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj, jint rtype, jdouble alpha);
533 
Java_org_opencv_core_Mat_n_1convertTo__JJID(JNIEnv * env,jclass,jlong self,jlong m_nativeObj,jint rtype,jdouble alpha)534 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1convertTo__JJID
535   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj, jint rtype, jdouble alpha)
536 {
537     static const char method_name[] = "Mat::n_1convertTo__JJID()";
538     try {
539         LOGD("%s", method_name);
540         Mat* me = (Mat*) self; //TODO: check for NULL
541         Mat& m = *((Mat*)m_nativeObj);
542         me->convertTo( m, rtype, alpha );
543     } catch(const std::exception &e) {
544         throwJavaException(env, &e, method_name);
545     } catch (...) {
546         throwJavaException(env, 0, method_name);
547     }
548 }
549 
550 
551 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1convertTo__JJI
552   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj, jint rtype);
553 
Java_org_opencv_core_Mat_n_1convertTo__JJI(JNIEnv * env,jclass,jlong self,jlong m_nativeObj,jint rtype)554 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1convertTo__JJI
555   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj, jint rtype)
556 {
557     static const char method_name[] = "Mat::n_1convertTo__JJI()";
558     try {
559         LOGD("%s", method_name);
560         Mat* me = (Mat*) self; //TODO: check for NULL
561         Mat& m = *((Mat*)m_nativeObj);
562         me->convertTo( m, rtype );
563     } catch(const std::exception &e) {
564         throwJavaException(env, &e, method_name);
565     } catch (...) {
566         throwJavaException(env, 0, method_name);
567     }
568 }
569 
570 
571 
572 //
573 //  void Mat::copyTo(Mat& m)
574 //
575 
576 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1copyTo__JJ
577   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj);
578 
Java_org_opencv_core_Mat_n_1copyTo__JJ(JNIEnv * env,jclass,jlong self,jlong m_nativeObj)579 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1copyTo__JJ
580   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj)
581 {
582     static const char method_name[] = "Mat::n_1copyTo__JJ()";
583     try {
584         LOGD("%s", method_name);
585         Mat* me = (Mat*) self; //TODO: check for NULL
586         Mat& m = *((Mat*)m_nativeObj);
587         me->copyTo( m );
588     } catch(const std::exception &e) {
589         throwJavaException(env, &e, method_name);
590     } catch (...) {
591         throwJavaException(env, 0, method_name);
592     }
593 }
594 
595 
596 
597 //
598 //  void Mat::copyTo(Mat& m, Mat mask)
599 //
600 
601 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1copyTo__JJJ
602   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj, jlong mask_nativeObj);
603 
Java_org_opencv_core_Mat_n_1copyTo__JJJ(JNIEnv * env,jclass,jlong self,jlong m_nativeObj,jlong mask_nativeObj)604 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1copyTo__JJJ
605   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj, jlong mask_nativeObj)
606 {
607     static const char method_name[] = "Mat::n_1copyTo__JJJ()";
608     try {
609         LOGD("%s", method_name);
610         Mat* me = (Mat*) self; //TODO: check for NULL
611         Mat& m = *((Mat*)m_nativeObj);
612         Mat& mask = *((Mat*)mask_nativeObj);
613         me->copyTo( m, mask );
614     } catch(const std::exception &e) {
615         throwJavaException(env, &e, method_name);
616     } catch (...) {
617         throwJavaException(env, 0, method_name);
618     }
619 }
620 
621 
622 
623 //
624 //  void Mat::create(int rows, int cols, int type)
625 //
626 
627 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1create__JIII
628   (JNIEnv* env, jclass, jlong self, jint rows, jint cols, jint type);
629 
Java_org_opencv_core_Mat_n_1create__JIII(JNIEnv * env,jclass,jlong self,jint rows,jint cols,jint type)630 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1create__JIII
631   (JNIEnv* env, jclass, jlong self, jint rows, jint cols, jint type)
632 {
633     static const char method_name[] = "Mat::n_1create__JIII()";
634     try {
635         LOGD("%s", method_name);
636         Mat* me = (Mat*) self; //TODO: check for NULL
637         me->create( rows, cols, type );
638     } catch(const std::exception &e) {
639         throwJavaException(env, &e, method_name);
640     } catch (...) {
641         throwJavaException(env, 0, method_name);
642     }
643 }
644 
645 
646 
647 //
648 //  void Mat::create(Size size, int type)
649 //
650 
651 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1create__JDDI
652   (JNIEnv* env, jclass, jlong self, jdouble size_width, jdouble size_height, jint type);
653 
Java_org_opencv_core_Mat_n_1create__JDDI(JNIEnv * env,jclass,jlong self,jdouble size_width,jdouble size_height,jint type)654 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1create__JDDI
655   (JNIEnv* env, jclass, jlong self, jdouble size_width, jdouble size_height, jint type)
656 {
657     static const char method_name[] = "Mat::n_1create__JDDI()";
658     try {
659         LOGD("%s", method_name);
660         Mat* me = (Mat*) self; //TODO: check for NULL
661         Size size((int)size_width, (int)size_height);
662         me->create( size, type );
663     } catch(const std::exception &e) {
664         throwJavaException(env, &e, method_name);
665     } catch (...) {
666         throwJavaException(env, 0, method_name);
667     }
668 }
669 
670 
671 
672 //
673 //  Mat Mat::cross(Mat m)
674 //
675 
676 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1cross
677   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj);
678 
Java_org_opencv_core_Mat_n_1cross(JNIEnv * env,jclass,jlong self,jlong m_nativeObj)679 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1cross
680   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj)
681 {
682     static const char method_name[] = "Mat::n_1cross()";
683     try {
684         LOGD("%s", method_name);
685         Mat* me = (Mat*) self; //TODO: check for NULL
686         Mat& m = *((Mat*)m_nativeObj);
687         Mat _retval_ = me->cross( m );
688         return (jlong) new Mat(_retval_);
689     } catch(const std::exception &e) {
690         throwJavaException(env, &e, method_name);
691     } catch (...) {
692         throwJavaException(env, 0, method_name);
693     }
694 
695     return 0;
696 }
697 
698 
699 
700 //
701 //  long Mat::dataAddr()
702 //
703 
704 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1dataAddr
705   (JNIEnv*, jclass, jlong self);
706 
Java_org_opencv_core_Mat_n_1dataAddr(JNIEnv *,jclass,jlong self)707 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1dataAddr
708   (JNIEnv*, jclass, jlong self)
709 {
710     LOGD("Mat::n_1dataAddr()");
711     Mat* me = (Mat*) self; //TODO: check for NULL
712     return (jlong) me->data;
713 }
714 
715 
716 
717 //
718 //  int Mat::depth()
719 //
720 
721 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1depth
722   (JNIEnv* env, jclass, jlong self);
723 
Java_org_opencv_core_Mat_n_1depth(JNIEnv * env,jclass,jlong self)724 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1depth
725   (JNIEnv* env, jclass, jlong self)
726 {
727     static const char method_name[] = "Mat::n_1depth()";
728     try {
729         LOGD("%s", method_name);
730         Mat* me = (Mat*) self; //TODO: check for NULL
731         return me->depth(  );
732     } catch(const std::exception &e) {
733         throwJavaException(env, &e, method_name);
734     } catch (...) {
735         throwJavaException(env, 0, method_name);
736     }
737 
738     return 0;
739 }
740 
741 
742 
743 //
744 //  Mat Mat::diag(int d = 0)
745 //
746 
747 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1diag__JI
748   (JNIEnv* env, jclass, jlong self, jint d);
749 
Java_org_opencv_core_Mat_n_1diag__JI(JNIEnv * env,jclass,jlong self,jint d)750 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1diag__JI
751   (JNIEnv* env, jclass, jlong self, jint d)
752 {
753     static const char method_name[] = "Mat::n_1diag__JI()";
754     try {
755         LOGD("%s", method_name);
756         Mat* me = (Mat*) self; //TODO: check for NULL
757         Mat _retval_ = me->diag( d );
758         return (jlong) new Mat(_retval_);
759     } catch(const std::exception &e) {
760         throwJavaException(env, &e, method_name);
761     } catch (...) {
762         throwJavaException(env, 0, method_name);
763     }
764 
765     return 0;
766 }
767 
768 
769 
770 
771 //
772 // static Mat Mat::diag(Mat d)
773 //
774 
775 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1diag__J
776   (JNIEnv* env, jclass, jlong d_nativeObj);
777 
Java_org_opencv_core_Mat_n_1diag__J(JNIEnv * env,jclass,jlong d_nativeObj)778 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1diag__J
779   (JNIEnv* env, jclass, jlong d_nativeObj)
780 {
781     static const char method_name[] = "Mat::n_1diag__J()";
782     try {
783         LOGD("%s", method_name);
784         Mat _retval_ = Mat::diag( (*(Mat*)d_nativeObj) );
785         return (jlong) new Mat(_retval_);
786     } catch(const std::exception &e) {
787         throwJavaException(env, &e, method_name);
788     } catch (...) {
789         throwJavaException(env, 0, method_name);
790     }
791 
792     return 0;
793 }
794 
795 
796 
797 //
798 //  double Mat::dot(Mat m)
799 //
800 
801 JNIEXPORT jdouble JNICALL Java_org_opencv_core_Mat_n_1dot
802   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj);
803 
Java_org_opencv_core_Mat_n_1dot(JNIEnv * env,jclass,jlong self,jlong m_nativeObj)804 JNIEXPORT jdouble JNICALL Java_org_opencv_core_Mat_n_1dot
805   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj)
806 {
807     static const char method_name[] = "Mat::n_1dot()";
808     try {
809         LOGD("%s", method_name);
810         Mat* me = (Mat*) self; //TODO: check for NULL
811         Mat& m = *((Mat*)m_nativeObj);
812         return me->dot( m );
813     } catch(const std::exception &e) {
814         throwJavaException(env, &e, method_name);
815     } catch (...) {
816         throwJavaException(env, 0, method_name);
817     }
818 
819     return 0;
820 }
821 
822 
823 
824 //
825 //  size_t Mat::elemSize()
826 //
827 
828 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1elemSize
829   (JNIEnv* env, jclass, jlong self);
830 
Java_org_opencv_core_Mat_n_1elemSize(JNIEnv * env,jclass,jlong self)831 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1elemSize
832   (JNIEnv* env, jclass, jlong self)
833 {
834     static const char method_name[] = "Mat::n_1elemSize()";
835     try {
836         LOGD("%s", method_name);
837         Mat* me = (Mat*) self; //TODO: check for NULL
838         return me->elemSize(  );
839     } catch(const std::exception &e) {
840         throwJavaException(env, &e, method_name);
841     } catch (...) {
842         throwJavaException(env, 0, method_name);
843     }
844 
845     return 0;
846 }
847 
848 
849 
850 //
851 //  size_t Mat::elemSize1()
852 //
853 
854 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1elemSize1
855   (JNIEnv* env, jclass, jlong self);
856 
Java_org_opencv_core_Mat_n_1elemSize1(JNIEnv * env,jclass,jlong self)857 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1elemSize1
858   (JNIEnv* env, jclass, jlong self)
859 {
860     static const char method_name[] = "Mat::n_1elemSize1()";
861     try {
862         LOGD("%s", method_name);
863         Mat* me = (Mat*) self; //TODO: check for NULL
864         return me->elemSize1(  );
865     } catch(const std::exception &e) {
866         throwJavaException(env, &e, method_name);
867     } catch (...) {
868         throwJavaException(env, 0, method_name);
869     }
870 
871     return 0;
872 }
873 
874 
875 
876 //
877 //  bool Mat::empty()
878 //
879 
880 JNIEXPORT jboolean JNICALL Java_org_opencv_core_Mat_n_1empty
881   (JNIEnv* env, jclass, jlong self);
882 
Java_org_opencv_core_Mat_n_1empty(JNIEnv * env,jclass,jlong self)883 JNIEXPORT jboolean JNICALL Java_org_opencv_core_Mat_n_1empty
884   (JNIEnv* env, jclass, jlong self)
885 {
886     static const char method_name[] = "Mat::n_1empty()";
887     try {
888         LOGD("%s", method_name);
889         Mat* me = (Mat*) self; //TODO: check for NULL
890         return me->empty(  );
891     } catch(const std::exception &e) {
892         throwJavaException(env, &e, method_name);
893     } catch (...) {
894         throwJavaException(env, 0, method_name);
895     }
896 
897     return 0;
898 }
899 
900 
901 
902 //
903 // static Mat Mat::eye(int rows, int cols, int type)
904 //
905 
906 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1eye__III
907   (JNIEnv* env, jclass, jint rows, jint cols, jint type);
908 
Java_org_opencv_core_Mat_n_1eye__III(JNIEnv * env,jclass,jint rows,jint cols,jint type)909 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1eye__III
910   (JNIEnv* env, jclass, jint rows, jint cols, jint type)
911 {
912     static const char method_name[] = "Mat::n_1eye__III()";
913     try {
914         LOGD("%s", method_name);
915         Mat _retval_ = Mat::eye( rows, cols, type );
916         return (jlong) new Mat(_retval_);
917     } catch(const std::exception &e) {
918         throwJavaException(env, &e, method_name);
919     } catch (...) {
920         throwJavaException(env, 0, method_name);
921     }
922 
923     return 0;
924 }
925 
926 
927 
928 //
929 // static Mat Mat::eye(Size size, int type)
930 //
931 
932 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1eye__DDI
933   (JNIEnv* env, jclass, jdouble size_width, jdouble size_height, jint type);
934 
Java_org_opencv_core_Mat_n_1eye__DDI(JNIEnv * env,jclass,jdouble size_width,jdouble size_height,jint type)935 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1eye__DDI
936   (JNIEnv* env, jclass, jdouble size_width, jdouble size_height, jint type)
937 {
938     static const char method_name[] = "Mat::n_1eye__DDI()";
939     try {
940         LOGD("%s", method_name);
941         Size size((int)size_width, (int)size_height);
942         Mat _retval_ = Mat::eye( size, type );
943         return (jlong) new Mat(_retval_);
944     } catch(const std::exception &e) {
945         throwJavaException(env, &e, method_name);
946     } catch (...) {
947         throwJavaException(env, 0, method_name);
948     }
949 
950     return 0;
951 }
952 
953 
954 
955 //
956 //  Mat Mat::inv(int method = DECOMP_LU)
957 //
958 
959 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1inv__JI
960   (JNIEnv* env, jclass, jlong self, jint method);
961 
Java_org_opencv_core_Mat_n_1inv__JI(JNIEnv * env,jclass,jlong self,jint method)962 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1inv__JI
963   (JNIEnv* env, jclass, jlong self, jint method)
964 {
965     static const char method_name[] = "Mat::n_1inv__JI()";
966     try {
967         LOGD("%s", method_name);
968         Mat* me = (Mat*) self; //TODO: check for NULL
969         Mat _retval_ = me->inv( method );
970         return (jlong) new Mat(_retval_);
971     } catch(const std::exception &e) {
972         throwJavaException(env, &e, method_name);
973     } catch (...) {
974         throwJavaException(env, 0, method_name);
975     }
976 
977     return 0;
978 }
979 
980 
981 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1inv__J
982   (JNIEnv* env, jclass, jlong self);
983 
Java_org_opencv_core_Mat_n_1inv__J(JNIEnv * env,jclass,jlong self)984 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1inv__J
985   (JNIEnv* env, jclass, jlong self)
986 {
987     static const char method_name[] = "Mat::n_1inv__J()";
988     try {
989         LOGD("%s", method_name);
990         Mat* me = (Mat*) self; //TODO: check for NULL
991         Mat _retval_ = me->inv(  );
992         return (jlong) new Mat(_retval_);
993     } catch(const std::exception &e) {
994         throwJavaException(env, &e, method_name);
995     } catch (...) {
996         throwJavaException(env, 0, method_name);
997     }
998 
999     return 0;
1000 }
1001 
1002 
1003 
1004 //
1005 //  bool Mat::isContinuous()
1006 //
1007 
1008 JNIEXPORT jboolean JNICALL Java_org_opencv_core_Mat_n_1isContinuous
1009   (JNIEnv* env, jclass, jlong self);
1010 
Java_org_opencv_core_Mat_n_1isContinuous(JNIEnv * env,jclass,jlong self)1011 JNIEXPORT jboolean JNICALL Java_org_opencv_core_Mat_n_1isContinuous
1012   (JNIEnv* env, jclass, jlong self)
1013 {
1014     static const char method_name[] = "Mat::n_1isContinuous()";
1015     try {
1016         LOGD("%s", method_name);
1017         Mat* me = (Mat*) self; //TODO: check for NULL
1018         return me->isContinuous(  );
1019     } catch(const std::exception &e) {
1020         throwJavaException(env, &e, method_name);
1021     } catch (...) {
1022         throwJavaException(env, 0, method_name);
1023     }
1024 
1025     return 0;
1026 }
1027 
1028 
1029 
1030 //
1031 //  bool Mat::isSubmatrix()
1032 //
1033 
1034 JNIEXPORT jboolean JNICALL Java_org_opencv_core_Mat_n_1isSubmatrix
1035   (JNIEnv* env, jclass, jlong self);
1036 
Java_org_opencv_core_Mat_n_1isSubmatrix(JNIEnv * env,jclass,jlong self)1037 JNIEXPORT jboolean JNICALL Java_org_opencv_core_Mat_n_1isSubmatrix
1038   (JNIEnv* env, jclass, jlong self)
1039 {
1040     static const char method_name[] = "Mat::n_1isSubmatrix()";
1041     try {
1042         LOGD("%s", method_name);
1043         Mat* me = (Mat*) self; //TODO: check for NULL
1044         return me->isSubmatrix(  );
1045     } catch(const std::exception &e) {
1046         throwJavaException(env, &e, method_name);
1047     } catch (...) {
1048         throwJavaException(env, 0, method_name);
1049     }
1050 
1051     return 0;
1052 }
1053 
1054 
1055 
1056 //
1057 //  void Mat::locateROI(Size wholeSize, Point ofs)
1058 //
1059 
1060 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_locateROI_10
1061   (JNIEnv* env, jclass, jlong self, jdoubleArray wholeSize_out, jdoubleArray ofs_out);
1062 
Java_org_opencv_core_Mat_locateROI_10(JNIEnv * env,jclass,jlong self,jdoubleArray wholeSize_out,jdoubleArray ofs_out)1063 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_locateROI_10
1064   (JNIEnv* env, jclass, jlong self, jdoubleArray wholeSize_out, jdoubleArray ofs_out)
1065 {
1066     static const char method_name[] = "core::locateROI_10()";
1067     try {
1068         LOGD("%s", method_name);
1069         Mat* me = (Mat*) self; //TODO: check for NULL
1070         Size wholeSize;
1071         Point ofs;
1072         me->locateROI( wholeSize, ofs );
1073         jdouble tmp_wholeSize[2] = {wholeSize.width, wholeSize.height}; env->SetDoubleArrayRegion(wholeSize_out, 0, 2, tmp_wholeSize);  jdouble tmp_ofs[2] = {ofs.x, ofs.y}; env->SetDoubleArrayRegion(ofs_out, 0, 2, tmp_ofs);
1074     } catch(const std::exception &e) {
1075         throwJavaException(env, &e, method_name);
1076     } catch (...) {
1077         throwJavaException(env, 0, method_name);
1078     }
1079 }
1080 
1081 
1082 
1083 //
1084 //  Mat Mat::mul(Mat m, double scale = 1)
1085 //
1086 
1087 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1mul__JJD
1088   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj, jdouble scale);
1089 
Java_org_opencv_core_Mat_n_1mul__JJD(JNIEnv * env,jclass,jlong self,jlong m_nativeObj,jdouble scale)1090 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1mul__JJD
1091   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj, jdouble scale)
1092 {
1093     static const char method_name[] = "Mat::n_1mul__JJD()";
1094     try {
1095         LOGD("%s", method_name);
1096         Mat* me = (Mat*) self; //TODO: check for NULL
1097         Mat& m = *((Mat*)m_nativeObj);
1098         Mat _retval_ = me->mul( m, scale );
1099         return (jlong) new Mat(_retval_);
1100     } catch(const std::exception &e) {
1101         throwJavaException(env, &e, method_name);
1102     } catch (...) {
1103         throwJavaException(env, 0, method_name);
1104     }
1105 
1106     return 0;
1107 }
1108 
1109 
1110 
1111 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1mul__JJ
1112   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj);
1113 
Java_org_opencv_core_Mat_n_1mul__JJ(JNIEnv * env,jclass,jlong self,jlong m_nativeObj)1114 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1mul__JJ
1115   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj)
1116 {
1117     static const char method_name[] = "Mat::n_1mul__JJ()";
1118     try {
1119         LOGD("%s", method_name);
1120         Mat* me = (Mat*) self; //TODO: check for NULL
1121         Mat& m = *((Mat*)m_nativeObj);
1122         Mat _retval_ = me->mul( m );
1123         return (jlong) new Mat(_retval_);
1124     } catch(const std::exception &e) {
1125         throwJavaException(env, &e, method_name);
1126     } catch (...) {
1127         throwJavaException(env, 0, method_name);
1128     }
1129 
1130     return 0;
1131 }
1132 
1133 
1134 
1135 //
1136 // static Mat Mat::ones(int rows, int cols, int type)
1137 //
1138 
1139 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1ones__III
1140   (JNIEnv* env, jclass, jint rows, jint cols, jint type);
1141 
Java_org_opencv_core_Mat_n_1ones__III(JNIEnv * env,jclass,jint rows,jint cols,jint type)1142 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1ones__III
1143   (JNIEnv* env, jclass, jint rows, jint cols, jint type)
1144 {
1145     static const char method_name[] = "Mat::n_1ones__III()";
1146     try {
1147         LOGD("%s", method_name);
1148         Mat _retval_ = Mat::ones( rows, cols, type );
1149         return (jlong) new Mat(_retval_);
1150     } catch(const std::exception &e) {
1151         throwJavaException(env, &e, method_name);
1152     } catch (...) {
1153         throwJavaException(env, 0, method_name);
1154     }
1155 
1156     return 0;
1157 }
1158 
1159 
1160 
1161 //
1162 // static Mat Mat::ones(Size size, int type)
1163 //
1164 
1165 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1ones__DDI
1166   (JNIEnv* env, jclass, jdouble size_width, jdouble size_height, jint type);
1167 
Java_org_opencv_core_Mat_n_1ones__DDI(JNIEnv * env,jclass,jdouble size_width,jdouble size_height,jint type)1168 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1ones__DDI
1169   (JNIEnv* env, jclass, jdouble size_width, jdouble size_height, jint type)
1170 {
1171     static const char method_name[] = "Mat::n_1ones__DDI()";
1172     try {
1173         LOGD("%s", method_name);
1174         Size size((int)size_width, (int)size_height);
1175         Mat _retval_ = Mat::ones( size, type );
1176         return (jlong) new Mat(_retval_);
1177     } catch(const std::exception &e) {
1178         throwJavaException(env, &e, method_name);
1179     } catch (...) {
1180         throwJavaException(env, 0, method_name);
1181     }
1182 
1183     return 0;
1184 }
1185 
1186 
1187 
1188 //
1189 //  void Mat::push_back(Mat m)
1190 //
1191 
1192 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1push_1back
1193   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj);
1194 
Java_org_opencv_core_Mat_n_1push_1back(JNIEnv * env,jclass,jlong self,jlong m_nativeObj)1195 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1push_1back
1196   (JNIEnv* env, jclass, jlong self, jlong m_nativeObj)
1197 {
1198     static const char method_name[] = "Mat::n_1push_1back()";
1199     try {
1200         LOGD("%s", method_name);
1201         Mat* me = (Mat*) self; //TODO: check for NULL
1202         me->push_back( (*(Mat*)m_nativeObj) );
1203     } catch(const std::exception &e) {
1204         throwJavaException(env, &e, method_name);
1205     } catch (...) {
1206         throwJavaException(env, 0, method_name);
1207     }
1208 }
1209 
1210 
1211 
1212 //
1213 //  void Mat::release()
1214 //
1215 
1216 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1release
1217   (JNIEnv* env, jclass, jlong self);
1218 
Java_org_opencv_core_Mat_n_1release(JNIEnv * env,jclass,jlong self)1219 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1release
1220   (JNIEnv* env, jclass, jlong self)
1221 {
1222     static const char method_name[] = "Mat::n_1release()";
1223     try {
1224         LOGD("%s", method_name);
1225         Mat* me = (Mat*) self; //TODO: check for NULL
1226         me->release(  );
1227     } catch(const std::exception &e) {
1228         throwJavaException(env, &e, method_name);
1229     } catch (...) {
1230         throwJavaException(env, 0, method_name);
1231     }
1232 }
1233 
1234 
1235 
1236 //
1237 //  Mat Mat::reshape(int cn, int rows = 0)
1238 //
1239 
1240 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1reshape__JII
1241   (JNIEnv* env, jclass, jlong self, jint cn, jint rows);
1242 
Java_org_opencv_core_Mat_n_1reshape__JII(JNIEnv * env,jclass,jlong self,jint cn,jint rows)1243 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1reshape__JII
1244   (JNIEnv* env, jclass, jlong self, jint cn, jint rows)
1245 {
1246     static const char method_name[] = "Mat::n_1reshape__JII()";
1247     try {
1248         LOGD("%s", method_name);
1249         Mat* me = (Mat*) self; //TODO: check for NULL
1250         Mat _retval_ = me->reshape( cn, rows );
1251         return (jlong) new Mat(_retval_);
1252     } catch(const std::exception &e) {
1253         throwJavaException(env, &e, method_name);
1254     } catch (...) {
1255         throwJavaException(env, 0, method_name);
1256     }
1257 
1258     return 0;
1259 }
1260 
1261 
1262 
1263 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1reshape__JI
1264   (JNIEnv* env, jclass, jlong self, jint cn);
1265 
Java_org_opencv_core_Mat_n_1reshape__JI(JNIEnv * env,jclass,jlong self,jint cn)1266 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1reshape__JI
1267   (JNIEnv* env, jclass, jlong self, jint cn)
1268 {
1269     static const char method_name[] = "Mat::n_1reshape__JI()";
1270     try {
1271         LOGD("%s", method_name);
1272         Mat* me = (Mat*) self; //TODO: check for NULL
1273         Mat _retval_ = me->reshape( cn );
1274         return (jlong) new Mat(_retval_);
1275     } catch(const std::exception &e) {
1276         throwJavaException(env, &e, method_name);
1277     } catch (...) {
1278         throwJavaException(env, 0, method_name);
1279     }
1280 
1281     return 0;
1282 }
1283 
1284 
1285 
1286 //
1287 //  Mat Mat::row(int y)
1288 //
1289 
1290 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1row
1291   (JNIEnv* env, jclass, jlong self, jint y);
1292 
Java_org_opencv_core_Mat_n_1row(JNIEnv * env,jclass,jlong self,jint y)1293 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1row
1294   (JNIEnv* env, jclass, jlong self, jint y)
1295 {
1296     static const char method_name[] = "Mat::n_1row()";
1297     try {
1298         LOGD("%s", method_name);
1299         Mat* me = (Mat*) self; //TODO: check for NULL
1300         Mat _retval_ = me->row( y );
1301         return (jlong) new Mat(_retval_);
1302     } catch(const std::exception &e) {
1303         throwJavaException(env, &e, method_name);
1304     } catch (...) {
1305         throwJavaException(env, 0, method_name);
1306     }
1307 
1308     return 0;
1309 }
1310 
1311 
1312 
1313 //
1314 //  Mat Mat::rowRange(int startrow, int endrow)
1315 //
1316 
1317 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1rowRange
1318   (JNIEnv* env, jclass, jlong self, jint startrow, jint endrow);
1319 
Java_org_opencv_core_Mat_n_1rowRange(JNIEnv * env,jclass,jlong self,jint startrow,jint endrow)1320 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1rowRange
1321   (JNIEnv* env, jclass, jlong self, jint startrow, jint endrow)
1322 {
1323     static const char method_name[] = "Mat::n_1rowRange()";
1324     try {
1325         LOGD("%s", method_name);
1326         Mat* me = (Mat*) self; //TODO: check for NULL
1327         Mat _retval_ = me->rowRange( startrow, endrow );
1328         return (jlong) new Mat(_retval_);
1329     } catch(const std::exception &e) {
1330         throwJavaException(env, &e, method_name);
1331     } catch (...) {
1332         throwJavaException(env, 0, method_name);
1333     }
1334 
1335     return 0;
1336 }
1337 
1338 
1339 
1340 //
1341 //  int Mat::rows()
1342 //
1343 
1344 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1rows
1345   (JNIEnv* env, jclass, jlong self);
1346 
Java_org_opencv_core_Mat_n_1rows(JNIEnv * env,jclass,jlong self)1347 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1rows
1348   (JNIEnv* env, jclass, jlong self)
1349 {
1350     static const char method_name[] = "Mat::n_1rows()";
1351     try {
1352         LOGD("%s", method_name);
1353         Mat* me = (Mat*) self; //TODO: check for NULL
1354         return me->rows;
1355     } catch(const std::exception &e) {
1356         throwJavaException(env, &e, method_name);
1357     } catch (...) {
1358         throwJavaException(env, 0, method_name);
1359     }
1360 
1361     return 0;
1362 }
1363 
1364 
1365 
1366 //
1367 //  Mat Mat::operator =(Scalar s)
1368 //
1369 
1370 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1setTo__JDDDD
1371   (JNIEnv* env, jclass, jlong self, jdouble s_val0, jdouble s_val1, jdouble s_val2, jdouble s_val3);
1372 
Java_org_opencv_core_Mat_n_1setTo__JDDDD(JNIEnv * env,jclass,jlong self,jdouble s_val0,jdouble s_val1,jdouble s_val2,jdouble s_val3)1373 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1setTo__JDDDD
1374   (JNIEnv* env, jclass, jlong self, jdouble s_val0, jdouble s_val1, jdouble s_val2, jdouble s_val3)
1375 {
1376     static const char method_name[] = "Mat::n_1setTo__JDDDD()";
1377     try {
1378         LOGD("%s", method_name);
1379         Mat* me = (Mat*) self; //TODO: check for NULL
1380         Scalar s(s_val0, s_val1, s_val2, s_val3);
1381         Mat _retval_ = me->operator =( s );
1382         return (jlong) new Mat(_retval_);
1383     } catch(const std::exception &e) {
1384         throwJavaException(env, &e, method_name);
1385     } catch (...) {
1386         throwJavaException(env, 0, method_name);
1387     }
1388 
1389     return 0;
1390 }
1391 
1392 
1393 
1394 //
1395 //  Mat Mat::setTo(Scalar value, Mat mask = Mat())
1396 //
1397 
1398 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1setTo__JDDDDJ
1399   (JNIEnv* env, jclass, jlong self, jdouble s_val0, jdouble s_val1, jdouble s_val2, jdouble s_val3, jlong mask_nativeObj);
1400 
Java_org_opencv_core_Mat_n_1setTo__JDDDDJ(JNIEnv * env,jclass,jlong self,jdouble s_val0,jdouble s_val1,jdouble s_val2,jdouble s_val3,jlong mask_nativeObj)1401 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1setTo__JDDDDJ
1402   (JNIEnv* env, jclass, jlong self, jdouble s_val0, jdouble s_val1, jdouble s_val2, jdouble s_val3, jlong mask_nativeObj)
1403 {
1404     static const char method_name[] = "Mat::n_1setTo__JDDDDJ()";
1405     try {
1406         LOGD("%s", method_name);
1407         Mat* me = (Mat*) self; //TODO: check for NULL
1408         Scalar s(s_val0, s_val1, s_val2, s_val3);
1409         Mat& mask = *((Mat*)mask_nativeObj);
1410         Mat _retval_ = me->setTo( s, mask );
1411         return (jlong) new Mat(_retval_);
1412     } catch(const std::exception &e) {
1413         throwJavaException(env, &e, method_name);
1414     } catch (...) {
1415         throwJavaException(env, 0, method_name);
1416     }
1417 
1418     return 0;
1419 }
1420 
1421 
1422 
1423 //
1424 //  Mat Mat::setTo(Mat value, Mat mask = Mat())
1425 //
1426 
1427 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1setTo__JJJ
1428   (JNIEnv* env, jclass, jlong self, jlong value_nativeObj, jlong mask_nativeObj);
1429 
Java_org_opencv_core_Mat_n_1setTo__JJJ(JNIEnv * env,jclass,jlong self,jlong value_nativeObj,jlong mask_nativeObj)1430 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1setTo__JJJ
1431   (JNIEnv* env, jclass, jlong self, jlong value_nativeObj, jlong mask_nativeObj)
1432 {
1433     static const char method_name[] = "Mat::n_1setTo__JJJ()";
1434     try {
1435         LOGD("%s", method_name);
1436         Mat* me = (Mat*) self; //TODO: check for NULL
1437         Mat& value = *((Mat*)value_nativeObj);
1438         Mat& mask = *((Mat*)mask_nativeObj);
1439         Mat _retval_ = me->setTo( value, mask );
1440         return (jlong) new Mat(_retval_);
1441     } catch(const std::exception &e) {
1442         throwJavaException(env, &e, method_name);
1443     } catch (...) {
1444         throwJavaException(env, 0, method_name);
1445     }
1446 
1447     return 0;
1448 }
1449 
1450 
1451 
1452 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1setTo__JJ
1453   (JNIEnv* env, jclass, jlong self, jlong value_nativeObj);
1454 
Java_org_opencv_core_Mat_n_1setTo__JJ(JNIEnv * env,jclass,jlong self,jlong value_nativeObj)1455 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1setTo__JJ
1456   (JNIEnv* env, jclass, jlong self, jlong value_nativeObj)
1457 {
1458     static const char method_name[] = "Mat::n_1setTo__JJ()";
1459     try {
1460         LOGD("%s", method_name);
1461         Mat* me = (Mat*) self; //TODO: check for NULL
1462         Mat& value = *((Mat*)value_nativeObj);
1463         Mat _retval_ = me->setTo( value );
1464         return (jlong) new Mat(_retval_);
1465     } catch(const std::exception &e) {
1466         throwJavaException(env, &e, method_name);
1467     } catch (...) {
1468         throwJavaException(env, 0, method_name);
1469     }
1470 
1471     return 0;
1472 }
1473 
1474 
1475 
1476 //
1477 //  Size Mat::size()
1478 //
1479 
1480 JNIEXPORT jdoubleArray JNICALL Java_org_opencv_core_Mat_n_1size
1481   (JNIEnv* env, jclass, jlong self);
1482 
Java_org_opencv_core_Mat_n_1size(JNIEnv * env,jclass,jlong self)1483 JNIEXPORT jdoubleArray JNICALL Java_org_opencv_core_Mat_n_1size
1484   (JNIEnv* env, jclass, jlong self)
1485 {
1486     static const char method_name[] = "Mat::n_1size()";
1487     try {
1488         LOGD("%s", method_name);
1489         Mat* me = (Mat*) self; //TODO: check for NULL
1490         Size _retval_ = me->size(  );
1491         jdoubleArray _da_retval_ = env->NewDoubleArray(2);
1492         jdouble _tmp_retval_[2] = {_retval_.width, _retval_.height};
1493         env->SetDoubleArrayRegion(_da_retval_, 0, 2, _tmp_retval_);
1494         return _da_retval_;
1495     } catch(const std::exception &e) {
1496         throwJavaException(env, &e, method_name);
1497     } catch (...) {
1498         throwJavaException(env, 0, method_name);
1499     }
1500 
1501     return 0;
1502 }
1503 
1504 
1505 
1506 //
1507 //  size_t Mat::step1(int i = 0)
1508 //
1509 
1510 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1step1__JI
1511   (JNIEnv* env, jclass, jlong self, jint i);
1512 
Java_org_opencv_core_Mat_n_1step1__JI(JNIEnv * env,jclass,jlong self,jint i)1513 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1step1__JI
1514   (JNIEnv* env, jclass, jlong self, jint i)
1515 {
1516     static const char method_name[] = "Mat::n_1step1__JI()";
1517     try {
1518         LOGD("%s", method_name);
1519         Mat* me = (Mat*) self; //TODO: check for NULL
1520         return me->step1( i );
1521     } catch(const std::exception &e) {
1522         throwJavaException(env, &e, method_name);
1523     } catch (...) {
1524         throwJavaException(env, 0, method_name);
1525     }
1526 
1527     return 0;
1528 }
1529 
1530 
1531 
1532 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1step1__J
1533   (JNIEnv* env, jclass, jlong self);
1534 
Java_org_opencv_core_Mat_n_1step1__J(JNIEnv * env,jclass,jlong self)1535 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1step1__J
1536   (JNIEnv* env, jclass, jlong self)
1537 {
1538     static const char method_name[] = "Mat::n_1step1__J()";
1539     try {
1540         LOGD("%s", method_name);
1541         Mat* me = (Mat*) self; //TODO: check for NULL
1542         return me->step1(  );
1543     } catch(const std::exception &e) {
1544         throwJavaException(env, &e, method_name);
1545     } catch (...) {
1546         throwJavaException(env, 0, method_name);
1547     }
1548 
1549     return 0;
1550 }
1551 
1552 //
1553 //  Mat Mat::operator()(Range rowRange, Range colRange)
1554 //
1555 
1556 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1submat_1rr
1557   (JNIEnv* env, jclass, jlong self, jint rowRange_start, jint rowRange_end, jint colRange_start, jint colRange_end);
1558 
Java_org_opencv_core_Mat_n_1submat_1rr(JNIEnv * env,jclass,jlong self,jint rowRange_start,jint rowRange_end,jint colRange_start,jint colRange_end)1559 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1submat_1rr
1560   (JNIEnv* env, jclass, jlong self, jint rowRange_start, jint rowRange_end, jint colRange_start, jint colRange_end)
1561 {
1562     static const char method_name[] = "Mat::n_1submat_1rr()";
1563     try {
1564         LOGD("%s", method_name);
1565         Mat* me = (Mat*) self; //TODO: check for NULL
1566         Range rowRange(rowRange_start, rowRange_end);
1567         Range colRange(colRange_start, colRange_end);
1568         Mat _retval_ = me->operator()( rowRange, colRange );
1569         return (jlong) new Mat(_retval_);
1570     } catch(const std::exception &e) {
1571         throwJavaException(env, &e, method_name);
1572     } catch (...) {
1573         throwJavaException(env, 0, method_name);
1574     }
1575 
1576     return 0;
1577 }
1578 
1579 
1580 
1581 //
1582 //  Mat Mat::operator()(Rect roi)
1583 //
1584 
1585 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1submat
1586   (JNIEnv* env, jclass, jlong self, jint roi_x, jint roi_y, jint roi_width, jint roi_height);
1587 
Java_org_opencv_core_Mat_n_1submat(JNIEnv * env,jclass,jlong self,jint roi_x,jint roi_y,jint roi_width,jint roi_height)1588 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1submat
1589   (JNIEnv* env, jclass, jlong self, jint roi_x, jint roi_y, jint roi_width, jint roi_height)
1590 {
1591     static const char method_name[] = "Mat::n_1submat()";
1592     try {
1593         LOGD("%s", method_name);
1594         Mat* me = (Mat*) self; //TODO: check for NULL
1595         Rect roi(roi_x, roi_y, roi_width, roi_height);
1596         Mat _retval_ = me->operator()( roi );
1597         return (jlong) new Mat(_retval_);
1598     } catch(const std::exception &e) {
1599         throwJavaException(env, &e, method_name);
1600     } catch (...) {
1601         throwJavaException(env, 0, method_name);
1602     }
1603 
1604     return 0;
1605 }
1606 
1607 
1608 
1609 //
1610 //  Mat Mat::t()
1611 //
1612 
1613 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1t
1614   (JNIEnv* env, jclass, jlong self);
1615 
Java_org_opencv_core_Mat_n_1t(JNIEnv * env,jclass,jlong self)1616 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1t
1617   (JNIEnv* env, jclass, jlong self)
1618 {
1619     static const char method_name[] = "Mat::n_1t()";
1620     try {
1621         LOGD("%s", method_name);
1622         Mat* me = (Mat*) self; //TODO: check for NULL
1623         Mat _retval_ = me->t(  );
1624         return (jlong) new Mat(_retval_);
1625     } catch(const std::exception &e) {
1626         throwJavaException(env, &e, method_name);
1627     } catch (...) {
1628         throwJavaException(env, 0, method_name);
1629     }
1630 
1631     return 0;
1632 }
1633 
1634 
1635 
1636 //
1637 //  size_t Mat::total()
1638 //
1639 
1640 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1total
1641   (JNIEnv* env, jclass, jlong self);
1642 
Java_org_opencv_core_Mat_n_1total(JNIEnv * env,jclass,jlong self)1643 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1total
1644   (JNIEnv* env, jclass, jlong self)
1645 {
1646     static const char method_name[] = "Mat::n_1total()";
1647     try {
1648         LOGD("%s", method_name);
1649         Mat* me = (Mat*) self; //TODO: check for NULL
1650         return me->total(  );
1651     } catch(const std::exception &e) {
1652         throwJavaException(env, &e, method_name);
1653     } catch (...) {
1654         throwJavaException(env, 0, method_name);
1655     }
1656 
1657     return 0;
1658 }
1659 
1660 
1661 
1662 //
1663 //  int Mat::type()
1664 //
1665 
1666 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1type
1667   (JNIEnv* env, jclass, jlong self);
1668 
Java_org_opencv_core_Mat_n_1type(JNIEnv * env,jclass,jlong self)1669 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_n_1type
1670   (JNIEnv* env, jclass, jlong self)
1671 {
1672     static const char method_name[] = "Mat::n_1type()";
1673     try {
1674         LOGD("%s", method_name);
1675         Mat* me = (Mat*) self; //TODO: check for NULL
1676         return me->type(  );
1677     } catch(const std::exception &e) {
1678         throwJavaException(env, &e, method_name);
1679     } catch (...) {
1680         throwJavaException(env, 0, method_name);
1681     }
1682 
1683     return 0;
1684 }
1685 
1686 
1687 
1688 //
1689 // static Mat Mat::zeros(int rows, int cols, int type)
1690 //
1691 
1692 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1zeros__III
1693   (JNIEnv* env, jclass, jint rows, jint cols, jint type);
1694 
Java_org_opencv_core_Mat_n_1zeros__III(JNIEnv * env,jclass,jint rows,jint cols,jint type)1695 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1zeros__III
1696   (JNIEnv* env, jclass, jint rows, jint cols, jint type)
1697 {
1698     static const char method_name[] = "Mat::n_1zeros__III()";
1699     try {
1700         LOGD("%s", method_name);
1701         Mat _retval_ = Mat::zeros( rows, cols, type );
1702         return (jlong) new Mat(_retval_);
1703     } catch(const std::exception &e) {
1704         throwJavaException(env, &e, method_name);
1705     } catch (...) {
1706         throwJavaException(env, 0, method_name);
1707     }
1708 
1709     return 0;
1710 }
1711 
1712 
1713 
1714 //
1715 // static Mat Mat::zeros(Size size, int type)
1716 //
1717 
1718 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1zeros__DDI
1719   (JNIEnv* env, jclass, jdouble size_width, jdouble size_height, jint type);
1720 
Java_org_opencv_core_Mat_n_1zeros__DDI(JNIEnv * env,jclass,jdouble size_width,jdouble size_height,jint type)1721 JNIEXPORT jlong JNICALL Java_org_opencv_core_Mat_n_1zeros__DDI
1722   (JNIEnv* env, jclass, jdouble size_width, jdouble size_height, jint type)
1723 {
1724     static const char method_name[] = "Mat::n_1zeros__DDI()";
1725     try {
1726         LOGD("%s", method_name);
1727         Size size((int)size_width, (int)size_height);
1728         Mat _retval_ = Mat::zeros( size, type );
1729         return (jlong) new Mat(_retval_);
1730     } catch(const std::exception &e) {
1731         throwJavaException(env, &e, method_name);
1732     } catch (...) {
1733         throwJavaException(env, 0, method_name);
1734     }
1735 
1736     return 0;
1737 }
1738 
1739 
1740 
1741 //
1742 //  native support for java finalize()
1743 //  static void Mat::n_delete( __int64 self )
1744 //
1745 
1746 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1delete
1747   (JNIEnv*, jclass, jlong self);
1748 
Java_org_opencv_core_Mat_n_1delete(JNIEnv *,jclass,jlong self)1749 JNIEXPORT void JNICALL Java_org_opencv_core_Mat_n_1delete
1750   (JNIEnv*, jclass, jlong self)
1751 {
1752     delete (Mat*) self;
1753 }
1754 
1755 // unlike other nPut()-s this one (with double[]) should convert input values to correct type
1756 #define PUT_ITEM(T, R, C) { T*dst = (T*)me->ptr(R, C); for(int ch=0; ch<me->channels() && count>0; count--,ch++,src++,dst++) *dst = cv::saturate_cast<T>(*src); }
1757 
1758 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nPutD
1759     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jdoubleArray vals);
1760 
Java_org_opencv_core_Mat_nPutD(JNIEnv * env,jclass,jlong self,jint row,jint col,jint count,jdoubleArray vals)1761 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nPutD
1762     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jdoubleArray vals)
1763 {
1764     static const char method_name[] = "Mat::nPutD()";
1765     try {
1766         LOGD("%s", method_name);
1767         cv::Mat* me = (cv::Mat*) self;
1768         if(!me || !me->data) return 0;  // no native object behind
1769         if(me->rows<=row || me->cols<=col) return 0; // indexes out of range
1770 
1771         int rest = ((me->rows - row) * me->cols - col) * me->channels();
1772         if(count>rest) count = rest;
1773         int res = count;
1774         double* values = (double*)env->GetPrimitiveArrayCritical(vals, 0);
1775         double* src = values;
1776         int r, c;
1777         for(c=col; c<me->cols && count>0; c++)
1778         {
1779             switch(me->depth()) {
1780                 case CV_8U:  PUT_ITEM(uchar,  row, c); break;
1781                 case CV_8S:  PUT_ITEM(schar,  row, c); break;
1782                 case CV_16U: PUT_ITEM(ushort, row, c); break;
1783                 case CV_16S: PUT_ITEM(short,  row, c); break;
1784                 case CV_32S: PUT_ITEM(int,    row, c); break;
1785                 case CV_32F: PUT_ITEM(float,  row, c); break;
1786                 case CV_64F: PUT_ITEM(double, row, c); break;
1787             }
1788         }
1789 
1790         for(r=row+1; r<me->rows && count>0; r++)
1791             for(c=0; c<me->cols && count>0; c++)
1792             {
1793                 switch(me->depth()) {
1794                     case CV_8U:  PUT_ITEM(uchar,  r, c); break;
1795                     case CV_8S:  PUT_ITEM(schar,  r, c); break;
1796                     case CV_16U: PUT_ITEM(ushort, r, c); break;
1797                     case CV_16S: PUT_ITEM(short,  r, c); break;
1798                     case CV_32S: PUT_ITEM(int,    r, c); break;
1799                     case CV_32F: PUT_ITEM(float,  r, c); break;
1800                     case CV_64F: PUT_ITEM(double, r, c); break;
1801                 }
1802             }
1803 
1804         env->ReleasePrimitiveArrayCritical(vals, values, 0);
1805         return res;
1806     } catch(const std::exception &e) {
1807         throwJavaException(env, &e, method_name);
1808     } catch (...) {
1809         throwJavaException(env, 0, method_name);
1810     }
1811 
1812     return 0;
1813 }
1814 
1815 
1816 } // extern "C"
1817 
mat_put(cv::Mat * m,int row,int col,int count,char * buff)1818 template<typename T> static int mat_put(cv::Mat* m, int row, int col, int count, char* buff)
1819 {
1820     if(! m) return 0;
1821     if(! buff) return 0;
1822 
1823     count *= sizeof(T);
1824     int rest = ((m->rows - row) * m->cols - col) * (int)m->elemSize();
1825     if(count>rest) count = rest;
1826     int res = count;
1827 
1828     if( m->isContinuous() )
1829     {
1830         memcpy(m->ptr(row, col), buff, count);
1831     } else {
1832         // row by row
1833         int num = (m->cols - col) * (int)m->elemSize(); // 1st partial row
1834         if(count<num) num = count;
1835         uchar* data = m->ptr(row++, col);
1836         while(count>0){
1837             memcpy(data, buff, num);
1838             count -= num;
1839             buff += num;
1840             num = m->cols * (int)m->elemSize();
1841             if(count<num) num = count;
1842             data = m->ptr(row++, 0);
1843         }
1844     }
1845     return res;
1846 }
1847 
1848 
1849 extern "C" {
1850 
1851 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nPutB
1852     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jbyteArray vals);
1853 
Java_org_opencv_core_Mat_nPutB(JNIEnv * env,jclass,jlong self,jint row,jint col,jint count,jbyteArray vals)1854 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nPutB
1855     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jbyteArray vals)
1856 {
1857     static const char method_name[] = "Mat::nPutB()";
1858     try {
1859         LOGD("%s", method_name);
1860         cv::Mat* me = (cv::Mat*) self;
1861         if(! self) return 0; // no native object behind
1862         if(me->depth() != CV_8U && me->depth() != CV_8S) return 0; // incompatible type
1863         if(me->rows<=row || me->cols<=col) return 0; // indexes out of range
1864 
1865         char* values = (char*)env->GetPrimitiveArrayCritical(vals, 0);
1866         int res = mat_put<char>(me, row, col, count, values);
1867         env->ReleasePrimitiveArrayCritical(vals, values, 0);
1868         return res;
1869     } catch(const std::exception &e) {
1870         throwJavaException(env, &e, method_name);
1871     } catch (...) {
1872         throwJavaException(env, 0, method_name);
1873     }
1874 
1875     return 0;
1876 }
1877 
1878 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nPutS
1879     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jshortArray vals);
1880 
Java_org_opencv_core_Mat_nPutS(JNIEnv * env,jclass,jlong self,jint row,jint col,jint count,jshortArray vals)1881 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nPutS
1882     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jshortArray vals)
1883 {
1884     static const char method_name[] = "Mat::nPutS()";
1885     try {
1886         LOGD("%s", method_name);
1887         cv::Mat* me = (cv::Mat*) self;
1888         if(! self) return 0; // no native object behind
1889         if(me->depth() != CV_16U && me->depth() != CV_16S) return 0; // incompatible type
1890         if(me->rows<=row || me->cols<=col) return 0; // indexes out of range
1891 
1892         char* values = (char*)env->GetPrimitiveArrayCritical(vals, 0);
1893         int res = mat_put<short>(me, row, col, count, values);
1894         env->ReleasePrimitiveArrayCritical(vals, values, 0);
1895         return res;
1896     } catch(const std::exception &e) {
1897         throwJavaException(env, &e, method_name);
1898     } catch (...) {
1899         throwJavaException(env, 0, method_name);
1900     }
1901 
1902     return 0;
1903 }
1904 
1905 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nPutI
1906     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jintArray vals);
1907 
Java_org_opencv_core_Mat_nPutI(JNIEnv * env,jclass,jlong self,jint row,jint col,jint count,jintArray vals)1908 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nPutI
1909     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jintArray vals)
1910 {
1911     static const char method_name[] = "Mat::nPutI()";
1912     try {
1913         LOGD("%s", method_name);
1914         cv::Mat* me = (cv::Mat*) self;
1915         if(! self) return 0; // no native object behind
1916         if(me->depth() != CV_32S) return 0; // incompatible type
1917         if(me->rows<=row || me->cols<=col) return 0; // indexes out of range
1918 
1919         char* values = (char*)env->GetPrimitiveArrayCritical(vals, 0);
1920         int res = mat_put<int>(me, row, col, count, values);
1921         env->ReleasePrimitiveArrayCritical(vals, values, 0);
1922         return res;
1923     } catch(const std::exception &e) {
1924         throwJavaException(env, &e, method_name);
1925     } catch (...) {
1926         throwJavaException(env, 0, method_name);
1927     }
1928 
1929     return 0;
1930 }
1931 
1932 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nPutF
1933     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jfloatArray vals);
1934 
Java_org_opencv_core_Mat_nPutF(JNIEnv * env,jclass,jlong self,jint row,jint col,jint count,jfloatArray vals)1935 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nPutF
1936     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jfloatArray vals)
1937 {
1938     static const char method_name[] = "Mat::nPutF()";
1939     try {
1940         LOGD("%s", method_name);
1941         cv::Mat* me = (cv::Mat*) self;
1942         if(! self) return 0; // no native object behind
1943         if(me->depth() != CV_32F) return 0; // incompatible type
1944         if(me->rows<=row || me->cols<=col) return 0; // indexes out of range
1945 
1946         char* values = (char*)env->GetPrimitiveArrayCritical(vals, 0);
1947         int res = mat_put<float>(me, row, col, count, values);
1948         env->ReleasePrimitiveArrayCritical(vals, values, 0);
1949         return res;
1950     } catch(const std::exception &e) {
1951         throwJavaException(env, &e, method_name);
1952     } catch (...) {
1953         throwJavaException(env, 0, method_name);
1954     }
1955 
1956     return 0;
1957 }
1958 
1959 
1960 } // extern "C"
1961 
mat_get(cv::Mat * m,int row,int col,int count,char * buff)1962 template<typename T> int mat_get(cv::Mat* m, int row, int col, int count, char* buff)
1963 {
1964     if(! m) return 0;
1965     if(! buff) return 0;
1966 
1967     int bytesToCopy = count * sizeof(T);
1968     int bytesRestInMat = ((m->rows - row) * m->cols - col) * (int)m->elemSize();
1969     if(bytesToCopy > bytesRestInMat) bytesToCopy = bytesRestInMat;
1970     int res = bytesToCopy;
1971 
1972     if( m->isContinuous() )
1973     {
1974         memcpy(buff, m->ptr(row, col), bytesToCopy);
1975     } else {
1976         // row by row
1977         int bytesInRow = (m->cols - col) * (int)m->elemSize(); // 1st partial row
1978         while(bytesToCopy > 0)
1979         {
1980             int len = std::min(bytesToCopy, bytesInRow);
1981             memcpy(buff, m->ptr(row, col), len);
1982             bytesToCopy -= len;
1983             buff += len;
1984             row++;
1985             col = 0;
1986             bytesInRow = m->cols * (int)m->elemSize();
1987         }
1988     }
1989     return res;
1990 }
1991 
1992 extern "C" {
1993 
1994 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nGetB
1995     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jbyteArray vals);
1996 
Java_org_opencv_core_Mat_nGetB(JNIEnv * env,jclass,jlong self,jint row,jint col,jint count,jbyteArray vals)1997 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nGetB
1998     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jbyteArray vals)
1999 {
2000     static const char method_name[] = "Mat::nGetB()";
2001     try {
2002         LOGD("%s", method_name);
2003         cv::Mat* me = (cv::Mat*) self;
2004         if(! self) return 0; // no native object behind
2005         if(me->depth() != CV_8U && me->depth() != CV_8S) return 0; // incompatible type
2006         if(me->rows<=row || me->cols<=col) return 0; // indexes out of range
2007 
2008         char* values = (char*)env->GetPrimitiveArrayCritical(vals, 0);
2009         int res = mat_get<char>(me, row, col, count, values);
2010         env->ReleasePrimitiveArrayCritical(vals, values, 0);
2011         return res;
2012     } catch(const std::exception &e) {
2013         throwJavaException(env, &e, method_name);
2014     } catch (...) {
2015         throwJavaException(env, 0, method_name);
2016     }
2017 
2018     return 0;
2019 }
2020 
2021 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nGetS
2022     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jshortArray vals);
2023 
Java_org_opencv_core_Mat_nGetS(JNIEnv * env,jclass,jlong self,jint row,jint col,jint count,jshortArray vals)2024 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nGetS
2025     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jshortArray vals)
2026 {
2027     static const char method_name[] = "Mat::nGetS()";
2028     try {
2029         LOGD("%s", method_name);
2030         cv::Mat* me = (cv::Mat*) self;
2031         if(! self) return 0; // no native object behind
2032         if(me->depth() != CV_16U && me->depth() != CV_16S) return 0; // incompatible type
2033         if(me->rows<=row || me->cols<=col) return 0; // indexes out of range
2034 
2035         char* values = (char*)env->GetPrimitiveArrayCritical(vals, 0);
2036         int res = mat_get<short>(me, row, col, count, values);
2037         env->ReleasePrimitiveArrayCritical(vals, values, 0);
2038         return res;
2039     } catch(const std::exception &e) {
2040         throwJavaException(env, &e, method_name);
2041     } catch (...) {
2042         throwJavaException(env, 0, method_name);
2043     }
2044 
2045     return 0;
2046 }
2047 
2048 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nGetI
2049     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jintArray vals);
2050 
Java_org_opencv_core_Mat_nGetI(JNIEnv * env,jclass,jlong self,jint row,jint col,jint count,jintArray vals)2051 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nGetI
2052     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jintArray vals)
2053 {
2054     static const char method_name[] = "Mat::nGetI()";
2055     try {
2056         LOGD("%s", method_name);
2057         cv::Mat* me = (cv::Mat*) self;
2058         if(! self) return 0; // no native object behind
2059         if(me->depth() != CV_32S) return 0; // incompatible type
2060         if(me->rows<=row || me->cols<=col) return 0; // indexes out of range
2061 
2062         char* values = (char*)env->GetPrimitiveArrayCritical(vals, 0);
2063         int res = mat_get<int>(me, row, col, count, values);
2064         env->ReleasePrimitiveArrayCritical(vals, values, 0);
2065         return res;
2066     } catch(const std::exception &e) {
2067         throwJavaException(env, &e, method_name);
2068     } catch (...) {
2069         throwJavaException(env, 0, method_name);
2070     }
2071 
2072     return 0;
2073 }
2074 
2075 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nGetF
2076     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jfloatArray vals);
2077 
Java_org_opencv_core_Mat_nGetF(JNIEnv * env,jclass,jlong self,jint row,jint col,jint count,jfloatArray vals)2078 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nGetF
2079     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jfloatArray vals)
2080 {
2081     static const char method_name[] = "Mat::nGetF()";
2082     try {
2083         LOGD("%s", method_name);
2084         cv::Mat* me = (cv::Mat*) self;
2085         if(! self) return 0; // no native object behind
2086         if(me->depth() != CV_32F) return 0; // incompatible type
2087         if(me->rows<=row || me->cols<=col) return 0; // indexes out of range
2088 
2089         char* values = (char*)env->GetPrimitiveArrayCritical(vals, 0);
2090         int res = mat_get<float>(me, row, col, count, values);
2091         env->ReleasePrimitiveArrayCritical(vals, values, 0);
2092         return res;
2093     } catch(const std::exception &e) {
2094         throwJavaException(env, &e, method_name);
2095     } catch (...) {
2096         throwJavaException(env, 0, method_name);
2097     }
2098 
2099     return 0;
2100 }
2101 
2102 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nGetD
2103     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jdoubleArray vals);
2104 
Java_org_opencv_core_Mat_nGetD(JNIEnv * env,jclass,jlong self,jint row,jint col,jint count,jdoubleArray vals)2105 JNIEXPORT jint JNICALL Java_org_opencv_core_Mat_nGetD
2106     (JNIEnv* env, jclass, jlong self, jint row, jint col, jint count, jdoubleArray vals)
2107 {
2108     static const char method_name[] = "Mat::nGetD()";
2109     try {
2110         LOGD("%s", method_name);
2111         cv::Mat* me = (cv::Mat*) self;
2112         if(! self) return 0; // no native object behind
2113         if(me->depth() != CV_64F) return 0; // incompatible type
2114         if(me->rows<=row || me->cols<=col) return 0; // indexes out of range
2115 
2116         char* values = (char*)env->GetPrimitiveArrayCritical(vals, 0);
2117         int res = mat_get<double>(me, row, col, count, values);
2118         env->ReleasePrimitiveArrayCritical(vals, values, 0);
2119         return res;
2120     } catch(const std::exception &e) {
2121         throwJavaException(env, &e, method_name);
2122     } catch (...) {
2123         throwJavaException(env, 0, method_name);
2124     }
2125 
2126     return 0;
2127 }
2128 
2129 JNIEXPORT jdoubleArray JNICALL Java_org_opencv_core_Mat_nGet
2130     (JNIEnv* env, jclass, jlong self, jint row, jint col);
2131 
Java_org_opencv_core_Mat_nGet(JNIEnv * env,jclass,jlong self,jint row,jint col)2132 JNIEXPORT jdoubleArray JNICALL Java_org_opencv_core_Mat_nGet
2133     (JNIEnv* env, jclass, jlong self, jint row, jint col)
2134 {
2135     static const char method_name[] = "Mat::nGet()";
2136     try {
2137         LOGD("%s", method_name);
2138         cv::Mat* me = (cv::Mat*) self;
2139         if(! self) return 0; // no native object behind
2140         if(me->rows<=row || me->cols<=col) return 0; // indexes out of range
2141 
2142         jdoubleArray res = env->NewDoubleArray(me->channels());
2143         if(res){
2144             jdouble buff[CV_CN_MAX];//me->channels()
2145             int i;
2146             switch(me->depth()){
2147                 case CV_8U:  for(i=0; i<me->channels(); i++) buff[i] = *((unsigned char*) me->ptr(row, col) + i); break;
2148                 case CV_8S:  for(i=0; i<me->channels(); i++) buff[i] = *((signed char*)   me->ptr(row, col) + i); break;
2149                 case CV_16U: for(i=0; i<me->channels(); i++) buff[i] = *((unsigned short*)me->ptr(row, col) + i); break;
2150                 case CV_16S: for(i=0; i<me->channels(); i++) buff[i] = *((signed short*)  me->ptr(row, col) + i); break;
2151                 case CV_32S: for(i=0; i<me->channels(); i++) buff[i] = *((int*)           me->ptr(row, col) + i); break;
2152                 case CV_32F: for(i=0; i<me->channels(); i++) buff[i] = *((float*)         me->ptr(row, col) + i); break;
2153                 case CV_64F: for(i=0; i<me->channels(); i++) buff[i] = *((double*)        me->ptr(row, col) + i); break;
2154             }
2155             env->SetDoubleArrayRegion(res, 0, me->channels(), buff);
2156         }
2157         return res;
2158     } catch(const std::exception &e) {
2159         throwJavaException(env, &e, method_name);
2160     } catch (...) {
2161         throwJavaException(env, 0, method_name);
2162     }
2163 
2164     return 0;
2165 }
2166 
2167 JNIEXPORT jstring JNICALL Java_org_opencv_core_Mat_nDump
2168   (JNIEnv *env, jclass, jlong self);
2169 
Java_org_opencv_core_Mat_nDump(JNIEnv * env,jclass,jlong self)2170 JNIEXPORT jstring JNICALL Java_org_opencv_core_Mat_nDump
2171   (JNIEnv *env, jclass, jlong self)
2172 {
2173     static const char method_name[] = "Mat::nDump()";
2174     try {
2175         LOGD("%s", method_name);
2176         cv::Mat* me = (cv::Mat*) self; //TODO: check for NULL
2177         String s;
2178         Ptr<Formatted> fmtd = Formatter::get()->format(*me);
2179         for(const char* str = fmtd->next(); str; str = fmtd->next())
2180         {
2181             s = s + String(str);
2182         }
2183         return env->NewStringUTF(s.c_str());
2184     } catch(const std::exception &e) {
2185         throwJavaException(env, &e, method_name);
2186     } catch (...) {
2187         throwJavaException(env, 0, method_name);
2188     }
2189 
2190     return 0;
2191 }
2192 
2193 
2194 } // extern "C"
2195