• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.opencv.core;
2 
3 // C++: class Mat
4 //javadoc: Mat
5 public class Mat {
6 
7     public final long nativeObj;
8 
Mat(long addr)9     public Mat(long addr)
10     {
11         if (addr == 0)
12             throw new java.lang.UnsupportedOperationException("Native object address is NULL");
13         nativeObj = addr;
14     }
15 
16     //
17     // C++: Mat::Mat()
18     //
19 
20     // javadoc: Mat::Mat()
Mat()21     public Mat()
22     {
23 
24         nativeObj = n_Mat();
25 
26         return;
27     }
28 
29     //
30     // C++: Mat::Mat(int rows, int cols, int type)
31     //
32 
33     // javadoc: Mat::Mat(rows, cols, type)
Mat(int rows, int cols, int type)34     public Mat(int rows, int cols, int type)
35     {
36 
37         nativeObj = n_Mat(rows, cols, type);
38 
39         return;
40     }
41 
42     //
43     // C++: Mat::Mat(Size size, int type)
44     //
45 
46     // javadoc: Mat::Mat(size, type)
Mat(Size size, int type)47     public Mat(Size size, int type)
48     {
49 
50         nativeObj = n_Mat(size.width, size.height, type);
51 
52         return;
53     }
54 
55     //
56     // C++: Mat::Mat(int rows, int cols, int type, Scalar s)
57     //
58 
59     // javadoc: Mat::Mat(rows, cols, type, s)
Mat(int rows, int cols, int type, Scalar s)60     public Mat(int rows, int cols, int type, Scalar s)
61     {
62 
63         nativeObj = n_Mat(rows, cols, type, s.val[0], s.val[1], s.val[2], s.val[3]);
64 
65         return;
66     }
67 
68     //
69     // C++: Mat::Mat(Size size, int type, Scalar s)
70     //
71 
72     // javadoc: Mat::Mat(size, type, s)
Mat(Size size, int type, Scalar s)73     public Mat(Size size, int type, Scalar s)
74     {
75 
76         nativeObj = n_Mat(size.width, size.height, type, s.val[0], s.val[1], s.val[2], s.val[3]);
77 
78         return;
79     }
80 
81     //
82     // C++: Mat::Mat(Mat m, Range rowRange, Range colRange = Range::all())
83     //
84 
85     // javadoc: Mat::Mat(m, rowRange, colRange)
Mat(Mat m, Range rowRange, Range colRange)86     public Mat(Mat m, Range rowRange, Range colRange)
87     {
88 
89         nativeObj = n_Mat(m.nativeObj, rowRange.start, rowRange.end, colRange.start, colRange.end);
90 
91         return;
92     }
93 
94     // javadoc: Mat::Mat(m, rowRange)
Mat(Mat m, Range rowRange)95     public Mat(Mat m, Range rowRange)
96     {
97 
98         nativeObj = n_Mat(m.nativeObj, rowRange.start, rowRange.end);
99 
100         return;
101     }
102 
103     //
104     // C++: Mat::Mat(Mat m, Rect roi)
105     //
106 
107     // javadoc: Mat::Mat(m, roi)
Mat(Mat m, Rect roi)108     public Mat(Mat m, Rect roi)
109     {
110 
111         nativeObj = n_Mat(m.nativeObj, roi.y, roi.y + roi.height, roi.x, roi.x + roi.width);
112 
113         return;
114     }
115 
116     //
117     // C++: Mat Mat::adjustROI(int dtop, int dbottom, int dleft, int dright)
118     //
119 
120     // javadoc: Mat::adjustROI(dtop, dbottom, dleft, dright)
adjustROI(int dtop, int dbottom, int dleft, int dright)121     public Mat adjustROI(int dtop, int dbottom, int dleft, int dright)
122     {
123 
124         Mat retVal = new Mat(n_adjustROI(nativeObj, dtop, dbottom, dleft, dright));
125 
126         return retVal;
127     }
128 
129     //
130     // C++: void Mat::assignTo(Mat m, int type = -1)
131     //
132 
133     // javadoc: Mat::assignTo(m, type)
assignTo(Mat m, int type)134     public void assignTo(Mat m, int type)
135     {
136 
137         n_assignTo(nativeObj, m.nativeObj, type);
138 
139         return;
140     }
141 
142     // javadoc: Mat::assignTo(m)
assignTo(Mat m)143     public void assignTo(Mat m)
144     {
145 
146         n_assignTo(nativeObj, m.nativeObj);
147 
148         return;
149     }
150 
151     //
152     // C++: int Mat::channels()
153     //
154 
155     // javadoc: Mat::channels()
channels()156     public int channels()
157     {
158 
159         int retVal = n_channels(nativeObj);
160 
161         return retVal;
162     }
163 
164     //
165     // C++: int Mat::checkVector(int elemChannels, int depth = -1, bool
166     // requireContinuous = true)
167     //
168 
169     // javadoc: Mat::checkVector(elemChannels, depth, requireContinuous)
checkVector(int elemChannels, int depth, boolean requireContinuous)170     public int checkVector(int elemChannels, int depth, boolean requireContinuous)
171     {
172 
173         int retVal = n_checkVector(nativeObj, elemChannels, depth, requireContinuous);
174 
175         return retVal;
176     }
177 
178     // javadoc: Mat::checkVector(elemChannels, depth)
checkVector(int elemChannels, int depth)179     public int checkVector(int elemChannels, int depth)
180     {
181 
182         int retVal = n_checkVector(nativeObj, elemChannels, depth);
183 
184         return retVal;
185     }
186 
187     // javadoc: Mat::checkVector(elemChannels)
checkVector(int elemChannels)188     public int checkVector(int elemChannels)
189     {
190 
191         int retVal = n_checkVector(nativeObj, elemChannels);
192 
193         return retVal;
194     }
195 
196     //
197     // C++: Mat Mat::clone()
198     //
199 
200     // javadoc: Mat::clone()
clone()201     public Mat clone()
202     {
203 
204         Mat retVal = new Mat(n_clone(nativeObj));
205 
206         return retVal;
207     }
208 
209     //
210     // C++: Mat Mat::col(int x)
211     //
212 
213     // javadoc: Mat::col(x)
col(int x)214     public Mat col(int x)
215     {
216 
217         Mat retVal = new Mat(n_col(nativeObj, x));
218 
219         return retVal;
220     }
221 
222     //
223     // C++: Mat Mat::colRange(int startcol, int endcol)
224     //
225 
226     // javadoc: Mat::colRange(startcol, endcol)
colRange(int startcol, int endcol)227     public Mat colRange(int startcol, int endcol)
228     {
229 
230         Mat retVal = new Mat(n_colRange(nativeObj, startcol, endcol));
231 
232         return retVal;
233     }
234 
235     //
236     // C++: Mat Mat::colRange(Range r)
237     //
238 
239     // javadoc: Mat::colRange(r)
colRange(Range r)240     public Mat colRange(Range r)
241     {
242 
243         Mat retVal = new Mat(n_colRange(nativeObj, r.start, r.end));
244 
245         return retVal;
246     }
247 
248     //
249     // C++: int Mat::dims()
250     //
251 
252     // javadoc: Mat::dims()
dims()253     public int dims()
254     {
255 
256         int retVal = n_dims(nativeObj);
257 
258         return retVal;
259     }
260 
261     //
262     // C++: int Mat::cols()
263     //
264 
265     // javadoc: Mat::cols()
cols()266     public int cols()
267     {
268 
269         int retVal = n_cols(nativeObj);
270 
271         return retVal;
272     }
273 
274     //
275     // C++: void Mat::convertTo(Mat& m, int rtype, double alpha = 1, double beta
276     // = 0)
277     //
278 
279     // javadoc: Mat::convertTo(m, rtype, alpha, beta)
convertTo(Mat m, int rtype, double alpha, double beta)280     public void convertTo(Mat m, int rtype, double alpha, double beta)
281     {
282 
283         n_convertTo(nativeObj, m.nativeObj, rtype, alpha, beta);
284 
285         return;
286     }
287 
288     // javadoc: Mat::convertTo(m, rtype, alpha)
convertTo(Mat m, int rtype, double alpha)289     public void convertTo(Mat m, int rtype, double alpha)
290     {
291 
292         n_convertTo(nativeObj, m.nativeObj, rtype, alpha);
293 
294         return;
295     }
296 
297     // javadoc: Mat::convertTo(m, rtype)
convertTo(Mat m, int rtype)298     public void convertTo(Mat m, int rtype)
299     {
300 
301         n_convertTo(nativeObj, m.nativeObj, rtype);
302 
303         return;
304     }
305 
306     //
307     // C++: void Mat::copyTo(Mat& m)
308     //
309 
310     // javadoc: Mat::copyTo(m)
copyTo(Mat m)311     public void copyTo(Mat m)
312     {
313 
314         n_copyTo(nativeObj, m.nativeObj);
315 
316         return;
317     }
318 
319     //
320     // C++: void Mat::copyTo(Mat& m, Mat mask)
321     //
322 
323     // javadoc: Mat::copyTo(m, mask)
copyTo(Mat m, Mat mask)324     public void copyTo(Mat m, Mat mask)
325     {
326 
327         n_copyTo(nativeObj, m.nativeObj, mask.nativeObj);
328 
329         return;
330     }
331 
332     //
333     // C++: void Mat::create(int rows, int cols, int type)
334     //
335 
336     // javadoc: Mat::create(rows, cols, type)
create(int rows, int cols, int type)337     public void create(int rows, int cols, int type)
338     {
339 
340         n_create(nativeObj, rows, cols, type);
341 
342         return;
343     }
344 
345     //
346     // C++: void Mat::create(Size size, int type)
347     //
348 
349     // javadoc: Mat::create(size, type)
create(Size size, int type)350     public void create(Size size, int type)
351     {
352 
353         n_create(nativeObj, size.width, size.height, type);
354 
355         return;
356     }
357 
358     //
359     // C++: Mat Mat::cross(Mat m)
360     //
361 
362     // javadoc: Mat::cross(m)
cross(Mat m)363     public Mat cross(Mat m)
364     {
365 
366         Mat retVal = new Mat(n_cross(nativeObj, m.nativeObj));
367 
368         return retVal;
369     }
370 
371     //
372     // C++: long Mat::dataAddr()
373     //
374 
375     // javadoc: Mat::dataAddr()
dataAddr()376     public long dataAddr()
377     {
378 
379         long retVal = n_dataAddr(nativeObj);
380 
381         return retVal;
382     }
383 
384     //
385     // C++: int Mat::depth()
386     //
387 
388     // javadoc: Mat::depth()
depth()389     public int depth()
390     {
391 
392         int retVal = n_depth(nativeObj);
393 
394         return retVal;
395     }
396 
397     //
398     // C++: Mat Mat::diag(int d = 0)
399     //
400 
401     // javadoc: Mat::diag(d)
diag(int d)402     public Mat diag(int d)
403     {
404 
405         Mat retVal = new Mat(n_diag(nativeObj, d));
406 
407         return retVal;
408     }
409 
410     // javadoc: Mat::diag()
diag()411     public Mat diag()
412     {
413 
414         Mat retVal = new Mat(n_diag(nativeObj, 0));
415 
416         return retVal;
417     }
418 
419     //
420     // C++: static Mat Mat::diag(Mat d)
421     //
422 
423     // javadoc: Mat::diag(d)
diag(Mat d)424     public static Mat diag(Mat d)
425     {
426 
427         Mat retVal = new Mat(n_diag(d.nativeObj));
428 
429         return retVal;
430     }
431 
432     //
433     // C++: double Mat::dot(Mat m)
434     //
435 
436     // javadoc: Mat::dot(m)
dot(Mat m)437     public double dot(Mat m)
438     {
439 
440         double retVal = n_dot(nativeObj, m.nativeObj);
441 
442         return retVal;
443     }
444 
445     //
446     // C++: size_t Mat::elemSize()
447     //
448 
449     // javadoc: Mat::elemSize()
elemSize()450     public long elemSize()
451     {
452 
453         long retVal = n_elemSize(nativeObj);
454 
455         return retVal;
456     }
457 
458     //
459     // C++: size_t Mat::elemSize1()
460     //
461 
462     // javadoc: Mat::elemSize1()
elemSize1()463     public long elemSize1()
464     {
465 
466         long retVal = n_elemSize1(nativeObj);
467 
468         return retVal;
469     }
470 
471     //
472     // C++: bool Mat::empty()
473     //
474 
475     // javadoc: Mat::empty()
empty()476     public boolean empty()
477     {
478 
479         boolean retVal = n_empty(nativeObj);
480 
481         return retVal;
482     }
483 
484     //
485     // C++: static Mat Mat::eye(int rows, int cols, int type)
486     //
487 
488     // javadoc: Mat::eye(rows, cols, type)
eye(int rows, int cols, int type)489     public static Mat eye(int rows, int cols, int type)
490     {
491 
492         Mat retVal = new Mat(n_eye(rows, cols, type));
493 
494         return retVal;
495     }
496 
497     //
498     // C++: static Mat Mat::eye(Size size, int type)
499     //
500 
501     // javadoc: Mat::eye(size, type)
eye(Size size, int type)502     public static Mat eye(Size size, int type)
503     {
504 
505         Mat retVal = new Mat(n_eye(size.width, size.height, type));
506 
507         return retVal;
508     }
509 
510     //
511     // C++: Mat Mat::inv(int method = DECOMP_LU)
512     //
513 
514     // javadoc: Mat::inv(method)
inv(int method)515     public Mat inv(int method)
516     {
517 
518         Mat retVal = new Mat(n_inv(nativeObj, method));
519 
520         return retVal;
521     }
522 
523     // javadoc: Mat::inv()
inv()524     public Mat inv()
525     {
526 
527         Mat retVal = new Mat(n_inv(nativeObj));
528 
529         return retVal;
530     }
531 
532     //
533     // C++: bool Mat::isContinuous()
534     //
535 
536     // javadoc: Mat::isContinuous()
isContinuous()537     public boolean isContinuous()
538     {
539 
540         boolean retVal = n_isContinuous(nativeObj);
541 
542         return retVal;
543     }
544 
545     //
546     // C++: bool Mat::isSubmatrix()
547     //
548 
549     // javadoc: Mat::isSubmatrix()
isSubmatrix()550     public boolean isSubmatrix()
551     {
552 
553         boolean retVal = n_isSubmatrix(nativeObj);
554 
555         return retVal;
556     }
557 
558     //
559     // C++: void Mat::locateROI(Size wholeSize, Point ofs)
560     //
561 
562     // javadoc: Mat::locateROI(wholeSize, ofs)
locateROI(Size wholeSize, Point ofs)563     public void locateROI(Size wholeSize, Point ofs)
564     {
565         double[] wholeSize_out = new double[2];
566         double[] ofs_out = new double[2];
567         locateROI_0(nativeObj, wholeSize_out, ofs_out);
568         if(wholeSize!=null){ wholeSize.width = wholeSize_out[0]; wholeSize.height = wholeSize_out[1]; }
569         if(ofs!=null){ ofs.x = ofs_out[0]; ofs.y = ofs_out[1]; }
570         return;
571     }
572 
573     //
574     // C++: Mat Mat::mul(Mat m, double scale = 1)
575     //
576 
577     // javadoc: Mat::mul(m, scale)
mul(Mat m, double scale)578     public Mat mul(Mat m, double scale)
579     {
580 
581         Mat retVal = new Mat(n_mul(nativeObj, m.nativeObj, scale));
582 
583         return retVal;
584     }
585 
586     // javadoc: Mat::mul(m)
mul(Mat m)587     public Mat mul(Mat m)
588     {
589 
590         Mat retVal = new Mat(n_mul(nativeObj, m.nativeObj));
591 
592         return retVal;
593     }
594 
595     //
596     // C++: static Mat Mat::ones(int rows, int cols, int type)
597     //
598 
599     // javadoc: Mat::ones(rows, cols, type)
ones(int rows, int cols, int type)600     public static Mat ones(int rows, int cols, int type)
601     {
602 
603         Mat retVal = new Mat(n_ones(rows, cols, type));
604 
605         return retVal;
606     }
607 
608     //
609     // C++: static Mat Mat::ones(Size size, int type)
610     //
611 
612     // javadoc: Mat::ones(size, type)
ones(Size size, int type)613     public static Mat ones(Size size, int type)
614     {
615 
616         Mat retVal = new Mat(n_ones(size.width, size.height, type));
617 
618         return retVal;
619     }
620 
621     //
622     // C++: void Mat::push_back(Mat m)
623     //
624 
625     // javadoc: Mat::push_back(m)
push_back(Mat m)626     public void push_back(Mat m)
627     {
628 
629         n_push_back(nativeObj, m.nativeObj);
630 
631         return;
632     }
633 
634     //
635     // C++: void Mat::release()
636     //
637 
638     // javadoc: Mat::release()
release()639     public void release()
640     {
641 
642         n_release(nativeObj);
643 
644         return;
645     }
646 
647     //
648     // C++: Mat Mat::reshape(int cn, int rows = 0)
649     //
650 
651     // javadoc: Mat::reshape(cn, rows)
reshape(int cn, int rows)652     public Mat reshape(int cn, int rows)
653     {
654 
655         Mat retVal = new Mat(n_reshape(nativeObj, cn, rows));
656 
657         return retVal;
658     }
659 
660     // javadoc: Mat::reshape(cn)
reshape(int cn)661     public Mat reshape(int cn)
662     {
663 
664         Mat retVal = new Mat(n_reshape(nativeObj, cn));
665 
666         return retVal;
667     }
668 
669     //
670     // C++: Mat Mat::row(int y)
671     //
672 
673     // javadoc: Mat::row(y)
row(int y)674     public Mat row(int y)
675     {
676 
677         Mat retVal = new Mat(n_row(nativeObj, y));
678 
679         return retVal;
680     }
681 
682     //
683     // C++: Mat Mat::rowRange(int startrow, int endrow)
684     //
685 
686     // javadoc: Mat::rowRange(startrow, endrow)
rowRange(int startrow, int endrow)687     public Mat rowRange(int startrow, int endrow)
688     {
689 
690         Mat retVal = new Mat(n_rowRange(nativeObj, startrow, endrow));
691 
692         return retVal;
693     }
694 
695     //
696     // C++: Mat Mat::rowRange(Range r)
697     //
698 
699     // javadoc: Mat::rowRange(r)
rowRange(Range r)700     public Mat rowRange(Range r)
701     {
702 
703         Mat retVal = new Mat(n_rowRange(nativeObj, r.start, r.end));
704 
705         return retVal;
706     }
707 
708     //
709     // C++: int Mat::rows()
710     //
711 
712     // javadoc: Mat::rows()
rows()713     public int rows()
714     {
715 
716         int retVal = n_rows(nativeObj);
717 
718         return retVal;
719     }
720 
721     //
722     // C++: Mat Mat::operator =(Scalar s)
723     //
724 
725     // javadoc: Mat::operator =(s)
setTo(Scalar s)726     public Mat setTo(Scalar s)
727     {
728 
729         Mat retVal = new Mat(n_setTo(nativeObj, s.val[0], s.val[1], s.val[2], s.val[3]));
730 
731         return retVal;
732     }
733 
734     //
735     // C++: Mat Mat::setTo(Scalar value, Mat mask = Mat())
736     //
737 
738     // javadoc: Mat::setTo(value, mask)
setTo(Scalar value, Mat mask)739     public Mat setTo(Scalar value, Mat mask)
740     {
741 
742         Mat retVal = new Mat(n_setTo(nativeObj, value.val[0], value.val[1], value.val[2], value.val[3], mask.nativeObj));
743 
744         return retVal;
745     }
746 
747     //
748     // C++: Mat Mat::setTo(Mat value, Mat mask = Mat())
749     //
750 
751     // javadoc: Mat::setTo(value, mask)
setTo(Mat value, Mat mask)752     public Mat setTo(Mat value, Mat mask)
753     {
754 
755         Mat retVal = new Mat(n_setTo(nativeObj, value.nativeObj, mask.nativeObj));
756 
757         return retVal;
758     }
759 
760     // javadoc: Mat::setTo(value)
setTo(Mat value)761     public Mat setTo(Mat value)
762     {
763 
764         Mat retVal = new Mat(n_setTo(nativeObj, value.nativeObj));
765 
766         return retVal;
767     }
768 
769     //
770     // C++: Size Mat::size()
771     //
772 
773     // javadoc: Mat::size()
size()774     public Size size()
775     {
776 
777         Size retVal = new Size(n_size(nativeObj));
778 
779         return retVal;
780     }
781 
782     //
783     // C++: size_t Mat::step1(int i = 0)
784     //
785 
786     // javadoc: Mat::step1(i)
step1(int i)787     public long step1(int i)
788     {
789 
790         long retVal = n_step1(nativeObj, i);
791 
792         return retVal;
793     }
794 
795     // javadoc: Mat::step1()
step1()796     public long step1()
797     {
798 
799         long retVal = n_step1(nativeObj);
800 
801         return retVal;
802     }
803 
804     //
805     // C++: Mat Mat::operator()(int rowStart, int rowEnd, int colStart, int
806     // colEnd)
807     //
808 
809     // javadoc: Mat::operator()(rowStart, rowEnd, colStart, colEnd)
submat(int rowStart, int rowEnd, int colStart, int colEnd)810     public Mat submat(int rowStart, int rowEnd, int colStart, int colEnd)
811     {
812 
813         Mat retVal = new Mat(n_submat_rr(nativeObj, rowStart, rowEnd, colStart, colEnd));
814 
815         return retVal;
816     }
817 
818     //
819     // C++: Mat Mat::operator()(Range rowRange, Range colRange)
820     //
821 
822     // javadoc: Mat::operator()(rowRange, colRange)
submat(Range rowRange, Range colRange)823     public Mat submat(Range rowRange, Range colRange)
824     {
825 
826         Mat retVal = new Mat(n_submat_rr(nativeObj, rowRange.start, rowRange.end, colRange.start, colRange.end));
827 
828         return retVal;
829     }
830 
831     //
832     // C++: Mat Mat::operator()(Rect roi)
833     //
834 
835     // javadoc: Mat::operator()(roi)
submat(Rect roi)836     public Mat submat(Rect roi)
837     {
838 
839         Mat retVal = new Mat(n_submat(nativeObj, roi.x, roi.y, roi.width, roi.height));
840 
841         return retVal;
842     }
843 
844     //
845     // C++: Mat Mat::t()
846     //
847 
848     // javadoc: Mat::t()
t()849     public Mat t()
850     {
851 
852         Mat retVal = new Mat(n_t(nativeObj));
853 
854         return retVal;
855     }
856 
857     //
858     // C++: size_t Mat::total()
859     //
860 
861     // javadoc: Mat::total()
total()862     public long total()
863     {
864 
865         long retVal = n_total(nativeObj);
866 
867         return retVal;
868     }
869 
870     //
871     // C++: int Mat::type()
872     //
873 
874     // javadoc: Mat::type()
type()875     public int type()
876     {
877 
878         int retVal = n_type(nativeObj);
879 
880         return retVal;
881     }
882 
883     //
884     // C++: static Mat Mat::zeros(int rows, int cols, int type)
885     //
886 
887     // javadoc: Mat::zeros(rows, cols, type)
zeros(int rows, int cols, int type)888     public static Mat zeros(int rows, int cols, int type)
889     {
890 
891         Mat retVal = new Mat(n_zeros(rows, cols, type));
892 
893         return retVal;
894     }
895 
896     //
897     // C++: static Mat Mat::zeros(Size size, int type)
898     //
899 
900     // javadoc: Mat::zeros(size, type)
zeros(Size size, int type)901     public static Mat zeros(Size size, int type)
902     {
903 
904         Mat retVal = new Mat(n_zeros(size.width, size.height, type));
905 
906         return retVal;
907     }
908 
909     @Override
finalize()910     protected void finalize() throws Throwable {
911         n_delete(nativeObj);
912         super.finalize();
913     }
914 
915     // javadoc:Mat::toString()
916     @Override
toString()917     public String toString() {
918         return "Mat [ " +
919                 rows() + "*" + cols() + "*" + CvType.typeToString(type()) +
920                 ", isCont=" + isContinuous() + ", isSubmat=" + isSubmatrix() +
921                 ", nativeObj=0x" + Long.toHexString(nativeObj) +
922                 ", dataAddr=0x" + Long.toHexString(dataAddr()) +
923                 " ]";
924     }
925 
926     // javadoc:Mat::dump()
dump()927     public String dump() {
928         return nDump(nativeObj);
929     }
930 
931     // javadoc:Mat::put(row,col,data)
put(int row, int col, double... data)932     public int put(int row, int col, double... data) {
933         int t = type();
934         if (data == null || data.length % CvType.channels(t) != 0)
935             throw new java.lang.UnsupportedOperationException(
936                     "Provided data element number (" +
937                             (data == null ? 0 : data.length) +
938                             ") should be multiple of the Mat channels count (" +
939                             CvType.channels(t) + ")");
940         return nPutD(nativeObj, row, col, data.length, data);
941     }
942 
943     // javadoc:Mat::put(row,col,data)
put(int row, int col, float[] data)944     public int put(int row, int col, float[] data) {
945         int t = type();
946         if (data == null || data.length % CvType.channels(t) != 0)
947             throw new java.lang.UnsupportedOperationException(
948                     "Provided data element number (" +
949                             (data == null ? 0 : data.length) +
950                             ") should be multiple of the Mat channels count (" +
951                             CvType.channels(t) + ")");
952         if (CvType.depth(t) == CvType.CV_32F) {
953             return nPutF(nativeObj, row, col, data.length, data);
954         }
955         throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);
956     }
957 
958     // javadoc:Mat::put(row,col,data)
put(int row, int col, int[] data)959     public int put(int row, int col, int[] data) {
960         int t = type();
961         if (data == null || data.length % CvType.channels(t) != 0)
962             throw new java.lang.UnsupportedOperationException(
963                     "Provided data element number (" +
964                             (data == null ? 0 : data.length) +
965                             ") should be multiple of the Mat channels count (" +
966                             CvType.channels(t) + ")");
967         if (CvType.depth(t) == CvType.CV_32S) {
968             return nPutI(nativeObj, row, col, data.length, data);
969         }
970         throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);
971     }
972 
973     // javadoc:Mat::put(row,col,data)
put(int row, int col, short[] data)974     public int put(int row, int col, short[] data) {
975         int t = type();
976         if (data == null || data.length % CvType.channels(t) != 0)
977             throw new java.lang.UnsupportedOperationException(
978                     "Provided data element number (" +
979                             (data == null ? 0 : data.length) +
980                             ") should be multiple of the Mat channels count (" +
981                             CvType.channels(t) + ")");
982         if (CvType.depth(t) == CvType.CV_16U || CvType.depth(t) == CvType.CV_16S) {
983             return nPutS(nativeObj, row, col, data.length, data);
984         }
985         throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);
986     }
987 
988     // javadoc:Mat::put(row,col,data)
put(int row, int col, byte[] data)989     public int put(int row, int col, byte[] data) {
990         int t = type();
991         if (data == null || data.length % CvType.channels(t) != 0)
992             throw new java.lang.UnsupportedOperationException(
993                     "Provided data element number (" +
994                             (data == null ? 0 : data.length) +
995                             ") should be multiple of the Mat channels count (" +
996                             CvType.channels(t) + ")");
997         if (CvType.depth(t) == CvType.CV_8U || CvType.depth(t) == CvType.CV_8S) {
998             return nPutB(nativeObj, row, col, data.length, data);
999         }
1000         throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);
1001     }
1002 
1003     // javadoc:Mat::get(row,col,data)
get(int row, int col, byte[] data)1004     public int get(int row, int col, byte[] data) {
1005         int t = type();
1006         if (data == null || data.length % CvType.channels(t) != 0)
1007             throw new java.lang.UnsupportedOperationException(
1008                     "Provided data element number (" +
1009                             (data == null ? 0 : data.length) +
1010                             ") should be multiple of the Mat channels count (" +
1011                             CvType.channels(t) + ")");
1012         if (CvType.depth(t) == CvType.CV_8U || CvType.depth(t) == CvType.CV_8S) {
1013             return nGetB(nativeObj, row, col, data.length, data);
1014         }
1015         throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);
1016     }
1017 
1018     // javadoc:Mat::get(row,col,data)
get(int row, int col, short[] data)1019     public int get(int row, int col, short[] data) {
1020         int t = type();
1021         if (data == null || data.length % CvType.channels(t) != 0)
1022             throw new java.lang.UnsupportedOperationException(
1023                     "Provided data element number (" +
1024                             (data == null ? 0 : data.length) +
1025                             ") should be multiple of the Mat channels count (" +
1026                             CvType.channels(t) + ")");
1027         if (CvType.depth(t) == CvType.CV_16U || CvType.depth(t) == CvType.CV_16S) {
1028             return nGetS(nativeObj, row, col, data.length, data);
1029         }
1030         throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);
1031     }
1032 
1033     // javadoc:Mat::get(row,col,data)
get(int row, int col, int[] data)1034     public int get(int row, int col, int[] data) {
1035         int t = type();
1036         if (data == null || data.length % CvType.channels(t) != 0)
1037             throw new java.lang.UnsupportedOperationException(
1038                     "Provided data element number (" +
1039                             (data == null ? 0 : data.length) +
1040                             ") should be multiple of the Mat channels count (" +
1041                             CvType.channels(t) + ")");
1042         if (CvType.depth(t) == CvType.CV_32S) {
1043             return nGetI(nativeObj, row, col, data.length, data);
1044         }
1045         throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);
1046     }
1047 
1048     // javadoc:Mat::get(row,col,data)
get(int row, int col, float[] data)1049     public int get(int row, int col, float[] data) {
1050         int t = type();
1051         if (data == null || data.length % CvType.channels(t) != 0)
1052             throw new java.lang.UnsupportedOperationException(
1053                     "Provided data element number (" +
1054                             (data == null ? 0 : data.length) +
1055                             ") should be multiple of the Mat channels count (" +
1056                             CvType.channels(t) + ")");
1057         if (CvType.depth(t) == CvType.CV_32F) {
1058             return nGetF(nativeObj, row, col, data.length, data);
1059         }
1060         throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);
1061     }
1062 
1063     // javadoc:Mat::get(row,col,data)
get(int row, int col, double[] data)1064     public int get(int row, int col, double[] data) {
1065         int t = type();
1066         if (data == null || data.length % CvType.channels(t) != 0)
1067             throw new java.lang.UnsupportedOperationException(
1068                     "Provided data element number (" +
1069                             (data == null ? 0 : data.length) +
1070                             ") should be multiple of the Mat channels count (" +
1071                             CvType.channels(t) + ")");
1072         if (CvType.depth(t) == CvType.CV_64F) {
1073             return nGetD(nativeObj, row, col, data.length, data);
1074         }
1075         throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);
1076     }
1077 
1078     // javadoc:Mat::get(row,col)
get(int row, int col)1079     public double[] get(int row, int col) {
1080         return nGet(nativeObj, row, col);
1081     }
1082 
1083     // javadoc:Mat::height()
height()1084     public int height() {
1085         return rows();
1086     }
1087 
1088     // javadoc:Mat::width()
width()1089     public int width() {
1090         return cols();
1091     }
1092 
1093     // javadoc:Mat::getNativeObjAddr()
getNativeObjAddr()1094     public long getNativeObjAddr() {
1095         return nativeObj;
1096     }
1097 
1098     // C++: Mat::Mat()
n_Mat()1099     private static native long n_Mat();
1100 
1101     // C++: Mat::Mat(int rows, int cols, int type)
n_Mat(int rows, int cols, int type)1102     private static native long n_Mat(int rows, int cols, int type);
1103 
1104     // C++: Mat::Mat(Size size, int type)
n_Mat(double size_width, double size_height, int type)1105     private static native long n_Mat(double size_width, double size_height, int type);
1106 
1107     // C++: Mat::Mat(int rows, int cols, int type, Scalar s)
n_Mat(int rows, int cols, int type, double s_val0, double s_val1, double s_val2, double s_val3)1108     private static native long n_Mat(int rows, int cols, int type, double s_val0, double s_val1, double s_val2, double s_val3);
1109 
1110     // C++: Mat::Mat(Size size, int type, Scalar s)
n_Mat(double size_width, double size_height, int type, double s_val0, double s_val1, double s_val2, double s_val3)1111     private static native long n_Mat(double size_width, double size_height, int type, double s_val0, double s_val1, double s_val2, double s_val3);
1112 
1113     // C++: Mat::Mat(Mat m, Range rowRange, Range colRange = Range::all())
n_Mat(long m_nativeObj, int rowRange_start, int rowRange_end, int colRange_start, int colRange_end)1114     private static native long n_Mat(long m_nativeObj, int rowRange_start, int rowRange_end, int colRange_start, int colRange_end);
1115 
n_Mat(long m_nativeObj, int rowRange_start, int rowRange_end)1116     private static native long n_Mat(long m_nativeObj, int rowRange_start, int rowRange_end);
1117 
1118     // C++: Mat Mat::adjustROI(int dtop, int dbottom, int dleft, int dright)
n_adjustROI(long nativeObj, int dtop, int dbottom, int dleft, int dright)1119     private static native long n_adjustROI(long nativeObj, int dtop, int dbottom, int dleft, int dright);
1120 
1121     // C++: void Mat::assignTo(Mat m, int type = -1)
n_assignTo(long nativeObj, long m_nativeObj, int type)1122     private static native void n_assignTo(long nativeObj, long m_nativeObj, int type);
1123 
n_assignTo(long nativeObj, long m_nativeObj)1124     private static native void n_assignTo(long nativeObj, long m_nativeObj);
1125 
1126     // C++: int Mat::channels()
n_channels(long nativeObj)1127     private static native int n_channels(long nativeObj);
1128 
1129     // C++: int Mat::checkVector(int elemChannels, int depth = -1, bool
1130     // requireContinuous = true)
n_checkVector(long nativeObj, int elemChannels, int depth, boolean requireContinuous)1131     private static native int n_checkVector(long nativeObj, int elemChannels, int depth, boolean requireContinuous);
1132 
n_checkVector(long nativeObj, int elemChannels, int depth)1133     private static native int n_checkVector(long nativeObj, int elemChannels, int depth);
1134 
n_checkVector(long nativeObj, int elemChannels)1135     private static native int n_checkVector(long nativeObj, int elemChannels);
1136 
1137     // C++: Mat Mat::clone()
n_clone(long nativeObj)1138     private static native long n_clone(long nativeObj);
1139 
1140     // C++: Mat Mat::col(int x)
n_col(long nativeObj, int x)1141     private static native long n_col(long nativeObj, int x);
1142 
1143     // C++: Mat Mat::colRange(int startcol, int endcol)
n_colRange(long nativeObj, int startcol, int endcol)1144     private static native long n_colRange(long nativeObj, int startcol, int endcol);
1145 
1146     // C++: int Mat::dims()
n_dims(long nativeObj)1147     private static native int n_dims(long nativeObj);
1148 
1149     // C++: int Mat::cols()
n_cols(long nativeObj)1150     private static native int n_cols(long nativeObj);
1151 
1152     // C++: void Mat::convertTo(Mat& m, int rtype, double alpha = 1, double beta
1153     // = 0)
n_convertTo(long nativeObj, long m_nativeObj, int rtype, double alpha, double beta)1154     private static native void n_convertTo(long nativeObj, long m_nativeObj, int rtype, double alpha, double beta);
1155 
n_convertTo(long nativeObj, long m_nativeObj, int rtype, double alpha)1156     private static native void n_convertTo(long nativeObj, long m_nativeObj, int rtype, double alpha);
1157 
n_convertTo(long nativeObj, long m_nativeObj, int rtype)1158     private static native void n_convertTo(long nativeObj, long m_nativeObj, int rtype);
1159 
1160     // C++: void Mat::copyTo(Mat& m)
n_copyTo(long nativeObj, long m_nativeObj)1161     private static native void n_copyTo(long nativeObj, long m_nativeObj);
1162 
1163     // C++: void Mat::copyTo(Mat& m, Mat mask)
n_copyTo(long nativeObj, long m_nativeObj, long mask_nativeObj)1164     private static native void n_copyTo(long nativeObj, long m_nativeObj, long mask_nativeObj);
1165 
1166     // C++: void Mat::create(int rows, int cols, int type)
n_create(long nativeObj, int rows, int cols, int type)1167     private static native void n_create(long nativeObj, int rows, int cols, int type);
1168 
1169     // C++: void Mat::create(Size size, int type)
n_create(long nativeObj, double size_width, double size_height, int type)1170     private static native void n_create(long nativeObj, double size_width, double size_height, int type);
1171 
1172     // C++: Mat Mat::cross(Mat m)
n_cross(long nativeObj, long m_nativeObj)1173     private static native long n_cross(long nativeObj, long m_nativeObj);
1174 
1175     // C++: long Mat::dataAddr()
n_dataAddr(long nativeObj)1176     private static native long n_dataAddr(long nativeObj);
1177 
1178     // C++: int Mat::depth()
n_depth(long nativeObj)1179     private static native int n_depth(long nativeObj);
1180 
1181     // C++: Mat Mat::diag(int d = 0)
n_diag(long nativeObj, int d)1182     private static native long n_diag(long nativeObj, int d);
1183 
1184     // C++: static Mat Mat::diag(Mat d)
n_diag(long d_nativeObj)1185     private static native long n_diag(long d_nativeObj);
1186 
1187     // C++: double Mat::dot(Mat m)
n_dot(long nativeObj, long m_nativeObj)1188     private static native double n_dot(long nativeObj, long m_nativeObj);
1189 
1190     // C++: size_t Mat::elemSize()
n_elemSize(long nativeObj)1191     private static native long n_elemSize(long nativeObj);
1192 
1193     // C++: size_t Mat::elemSize1()
n_elemSize1(long nativeObj)1194     private static native long n_elemSize1(long nativeObj);
1195 
1196     // C++: bool Mat::empty()
n_empty(long nativeObj)1197     private static native boolean n_empty(long nativeObj);
1198 
1199     // C++: static Mat Mat::eye(int rows, int cols, int type)
n_eye(int rows, int cols, int type)1200     private static native long n_eye(int rows, int cols, int type);
1201 
1202     // C++: static Mat Mat::eye(Size size, int type)
n_eye(double size_width, double size_height, int type)1203     private static native long n_eye(double size_width, double size_height, int type);
1204 
1205     // C++: Mat Mat::inv(int method = DECOMP_LU)
n_inv(long nativeObj, int method)1206     private static native long n_inv(long nativeObj, int method);
1207 
n_inv(long nativeObj)1208     private static native long n_inv(long nativeObj);
1209 
1210     // C++: bool Mat::isContinuous()
n_isContinuous(long nativeObj)1211     private static native boolean n_isContinuous(long nativeObj);
1212 
1213     // C++: bool Mat::isSubmatrix()
n_isSubmatrix(long nativeObj)1214     private static native boolean n_isSubmatrix(long nativeObj);
1215 
1216     // C++: void Mat::locateROI(Size wholeSize, Point ofs)
locateROI_0(long nativeObj, double[] wholeSize_out, double[] ofs_out)1217     private static native void locateROI_0(long nativeObj, double[] wholeSize_out, double[] ofs_out);
1218 
1219     // C++: Mat Mat::mul(Mat m, double scale = 1)
n_mul(long nativeObj, long m_nativeObj, double scale)1220     private static native long n_mul(long nativeObj, long m_nativeObj, double scale);
1221 
n_mul(long nativeObj, long m_nativeObj)1222     private static native long n_mul(long nativeObj, long m_nativeObj);
1223 
1224     // C++: static Mat Mat::ones(int rows, int cols, int type)
n_ones(int rows, int cols, int type)1225     private static native long n_ones(int rows, int cols, int type);
1226 
1227     // C++: static Mat Mat::ones(Size size, int type)
n_ones(double size_width, double size_height, int type)1228     private static native long n_ones(double size_width, double size_height, int type);
1229 
1230     // C++: void Mat::push_back(Mat m)
n_push_back(long nativeObj, long m_nativeObj)1231     private static native void n_push_back(long nativeObj, long m_nativeObj);
1232 
1233     // C++: void Mat::release()
n_release(long nativeObj)1234     private static native void n_release(long nativeObj);
1235 
1236     // C++: Mat Mat::reshape(int cn, int rows = 0)
n_reshape(long nativeObj, int cn, int rows)1237     private static native long n_reshape(long nativeObj, int cn, int rows);
1238 
n_reshape(long nativeObj, int cn)1239     private static native long n_reshape(long nativeObj, int cn);
1240 
1241     // C++: Mat Mat::row(int y)
n_row(long nativeObj, int y)1242     private static native long n_row(long nativeObj, int y);
1243 
1244     // C++: Mat Mat::rowRange(int startrow, int endrow)
n_rowRange(long nativeObj, int startrow, int endrow)1245     private static native long n_rowRange(long nativeObj, int startrow, int endrow);
1246 
1247     // C++: int Mat::rows()
n_rows(long nativeObj)1248     private static native int n_rows(long nativeObj);
1249 
1250     // C++: Mat Mat::operator =(Scalar s)
n_setTo(long nativeObj, double s_val0, double s_val1, double s_val2, double s_val3)1251     private static native long n_setTo(long nativeObj, double s_val0, double s_val1, double s_val2, double s_val3);
1252 
1253     // C++: Mat Mat::setTo(Scalar value, Mat mask = Mat())
n_setTo(long nativeObj, double s_val0, double s_val1, double s_val2, double s_val3, long mask_nativeObj)1254     private static native long n_setTo(long nativeObj, double s_val0, double s_val1, double s_val2, double s_val3, long mask_nativeObj);
1255 
1256     // C++: Mat Mat::setTo(Mat value, Mat mask = Mat())
n_setTo(long nativeObj, long value_nativeObj, long mask_nativeObj)1257     private static native long n_setTo(long nativeObj, long value_nativeObj, long mask_nativeObj);
1258 
n_setTo(long nativeObj, long value_nativeObj)1259     private static native long n_setTo(long nativeObj, long value_nativeObj);
1260 
1261     // C++: Size Mat::size()
n_size(long nativeObj)1262     private static native double[] n_size(long nativeObj);
1263 
1264     // C++: size_t Mat::step1(int i = 0)
n_step1(long nativeObj, int i)1265     private static native long n_step1(long nativeObj, int i);
1266 
n_step1(long nativeObj)1267     private static native long n_step1(long nativeObj);
1268 
1269     // C++: Mat Mat::operator()(Range rowRange, Range colRange)
n_submat_rr(long nativeObj, int rowRange_start, int rowRange_end, int colRange_start, int colRange_end)1270     private static native long n_submat_rr(long nativeObj, int rowRange_start, int rowRange_end, int colRange_start, int colRange_end);
1271 
1272     // C++: Mat Mat::operator()(Rect roi)
n_submat(long nativeObj, int roi_x, int roi_y, int roi_width, int roi_height)1273     private static native long n_submat(long nativeObj, int roi_x, int roi_y, int roi_width, int roi_height);
1274 
1275     // C++: Mat Mat::t()
n_t(long nativeObj)1276     private static native long n_t(long nativeObj);
1277 
1278     // C++: size_t Mat::total()
n_total(long nativeObj)1279     private static native long n_total(long nativeObj);
1280 
1281     // C++: int Mat::type()
n_type(long nativeObj)1282     private static native int n_type(long nativeObj);
1283 
1284     // C++: static Mat Mat::zeros(int rows, int cols, int type)
n_zeros(int rows, int cols, int type)1285     private static native long n_zeros(int rows, int cols, int type);
1286 
1287     // C++: static Mat Mat::zeros(Size size, int type)
n_zeros(double size_width, double size_height, int type)1288     private static native long n_zeros(double size_width, double size_height, int type);
1289 
1290     // native support for java finalize()
n_delete(long nativeObj)1291     private static native void n_delete(long nativeObj);
1292 
nPutD(long self, int row, int col, int count, double[] data)1293     private static native int nPutD(long self, int row, int col, int count, double[] data);
1294 
nPutF(long self, int row, int col, int count, float[] data)1295     private static native int nPutF(long self, int row, int col, int count, float[] data);
1296 
nPutI(long self, int row, int col, int count, int[] data)1297     private static native int nPutI(long self, int row, int col, int count, int[] data);
1298 
nPutS(long self, int row, int col, int count, short[] data)1299     private static native int nPutS(long self, int row, int col, int count, short[] data);
1300 
nPutB(long self, int row, int col, int count, byte[] data)1301     private static native int nPutB(long self, int row, int col, int count, byte[] data);
1302 
nGetB(long self, int row, int col, int count, byte[] vals)1303     private static native int nGetB(long self, int row, int col, int count, byte[] vals);
1304 
nGetS(long self, int row, int col, int count, short[] vals)1305     private static native int nGetS(long self, int row, int col, int count, short[] vals);
1306 
nGetI(long self, int row, int col, int count, int[] vals)1307     private static native int nGetI(long self, int row, int col, int count, int[] vals);
1308 
nGetF(long self, int row, int col, int count, float[] vals)1309     private static native int nGetF(long self, int row, int col, int count, float[] vals);
1310 
nGetD(long self, int row, int col, int count, double[] vals)1311     private static native int nGetD(long self, int row, int col, int count, double[] vals);
1312 
nGet(long self, int row, int col)1313     private static native double[] nGet(long self, int row, int col);
1314 
nDump(long self)1315     private static native String nDump(long self);
1316 }
1317